一次政府部門OA系統webloigc中介軟體BEA-000802引發出來的BUG
一、問題描述
2015/06/05 08:27左右開始,政府部門OA系統出現無法正常訪問現象。經重啟weblogic服務後系統恢復正常。
二、系統環境
作業系統: redhat5.8
JDK版本:jdk1.5.0_22
Db版本: oracle 11g
中介軟體版本:WebLogic Server 9.2.2.0
叢集:是
三、問題處理過程
3.1 處理過程
由於當時正是上班期間,而且應用系統已經不能訪問,為了讓系統能夠正常使用,重啟了服務系統恢復正常。
我們透過分析日誌檔案exoa02.log00261,發現故障時間是2015-06-05 08:27到2015-06-05 08:45 丟擲量現BEA-000802錯,最後導致exoa02和exoa01的服務不可用。
1、檢視exoa02日誌,大量報錯日誌如下
####<2015-6-5 上午08時27分30秒 CST> <Error> <Kernel> <exoaap> <exoa02> <[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1433464050489> <BEA-000802> <ExecuteRequest failed
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:546)
at java.util.ArrayList.get(ArrayList.java:321)
at weblogic.rmi.cluster.BasicReplicaList.getPrimary(BasicReplicaList.java:91)
at weblogic.rmi.cluster.ClusterableRemoteRef.getPrimaryRef(ClusterableRemoteRef.java:146)
at weblogic.rmi.cluster.ClusterableRemoteRef.remove(ClusterableRemoteRef.java:475)
at weblogic.rmi.cluster.ClusterableRemoteObject.onUnbind(ClusterableRemoteObject.java:264)
at weblogic.jndi.internal.BasicNamingNode.unbindHere(BasicNamingNode.java:591)
at weblogic.jndi.internal.ServerNamingNode.unbindHere(ServerNamingNode.java:306)
at weblogic.jndi.internal.BasicNamingNode.unbind(BasicNamingNode.java:561)
at weblogic.jndi.internal.WLEventContextImpl.unbind(WLEventContextImpl.java:201)
at weblogic.cluster.BasicServiceOffer.retract(BasicServiceOffer.java:105)
at weblogic.cluster.NodeInfo.retract(NodeInfo.java:200)
at weblogic.cluster.TreeManager.retract(TreeManager.java:68)
at weblogic.cluster.MemberServices.retractAllOffers(MemberServices.java:41)
at weblogic.cluster.RemoteMemberInfo.shutdown(RemoteMemberInfo.java:141)
at weblogic.cluster.MemberManager.checkTimeouts(MemberManager.java:386)
at weblogic.cluster.MulticastManager.timerExpired(MulticastManager.java:695)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:265)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
……………………………
####<2015-6-5 上午08時45分36秒 CST> <Error> <Kernel> <exoaap> <exoa02> <[ACTIVE] ExecuteThread: '24' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1433465136060> <BEA-000802> <ExecuteRequest failed
####<2015-6-5 上午08時45分42秒 CST> <Error> <Kernel> <exoaap> <exoa02> <[ACTIVE] ExecuteThread: '24' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1433465142344> <BEA-000802> <ExecuteRequest failed
2、從日誌檔案AdminServer.log和oaserver.log中可以找到託管的伺服器將從伺服器斷開連線,然後重新連線每5分鐘進行一次斷連和重連線。
####<2015-6-5 上午09時46分57秒 CST> <Info> <RJVM> <exoaap> <oaserver> <[ACTIVE] ExecuteThread: '195' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1433468817733> <BEA-000513> <Failure in heartbeat trigger for RJVM: 3722662084176194844S:172.29.1.226:[-1,7001,-1,-1,-1,-1,-1]:exoadomain:AdminServer
java.io.IOException: The connection manager to ConnectionManager for: 'weblogic.rjvm.RJVMImpl@36b4f5a - id: '3722662084176194844S:172.29.1.226:[-1,7001,-1,-1,-1,-1,-1]:exoadomain:AdminServer' connect time: 'Fri Jun 05 09:41:55 CST 2015'' has already been shut down.
java.io.IOException: The connection manager to ConnectionManager for: 'weblogic.rjvm.RJVMImpl@36b4f5a - id: '3722662084176194844S:172.29.1.226:[-1,7001,-1,-1,-1,-1,-1]:exoadomain:AdminServer' connect time: 'Fri Jun 05 09:41:55 CST 2015'' has already been shut down
at weblogic.rjvm.ConnectionManager.getOutputStream(ConnectionManager.java:1692)
at weblogic.rjvm.ConnectionManager.createHeartbeatMsg(ConnectionManager.java:1635)
at weblogic.rjvm.ConnectionManager.sendHeartbeatMsg(ConnectionManager.java:611)
at weblogic.rjvm.RJVMImpl$HeartbeatChecker.timerExpired(RJVMImpl.java:1540)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:265)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
>
####<2015-6-5 上午09時47分07秒 CST> <Info> <Server> <exoaap> <oaserver> <[ACTIVE] ExecuteThread: '196' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1433468827754> <BEA-002635> <The server "AdminServer" connected to this server.>
####< 2015-6-5 上午09時47分07秒 CST> <Notice> <Log Management> <exoaap> <oaserver> <[ACTIVE] ExecuteThread: '195' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1433468827757> <BEA-170027> <The server initialized the domain log broadcaster successfully. Log messages will now be broadcasted to the domain log.>
####< 2015-6-5 上午09時52分07秒 CST> <Info> <Server> <exoaap> <oaserver> <[ACTIVE] ExecuteThread: '191' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1433469127759> <BEA-002634> <The server "AdminServer" disconnected from this server.>
3、檢查配置檔案config.xml發現叢集地址配置有誤,發現還是遷移前的地址。
3.2 問題原因
1 、發生在全域性事務協議的資料來源是emulatetwophasecommit,日誌中頻繁會產生錯誤
<BEA-000802><EXECUTEREQUESTFAILED JAVA.LANG.INDEXOUTOFBOUNDSEXCEPTION: INDEX,其原因是BUG。最終導致服務不可用。
2、問題是由於伺服器沒有指定監聽的地址造成的。這將在一個多宿主的情況下造成的問題。 檢查配置檔案每個例項的監聽地址都是空白的,請指定一個正確的監聽地址。
3、配置檔案config.xml叢集地址配置有誤。
3.3 故障最佳化建議
1、<BEA-000802><EXECUTEREQUESTFAILED JAVA.LANG.INDEXOUTOFBOUNDSEXCEPTION: INDEX問題建議打上補丁 。目前9.2.2版本沒有出這個補丁,建議將weblogic版本升級到高版本。
2、修改config.xml配置檔案,將exoa01,exoa02,oaserver三個例項部分的,標籤<listen-address></listen-address>指定主機地址為:172.29.1.226,儲存config.xml配置檔案,重啟weblogic服務。
3、修改config.xml配置檔案中的cluste-address的叢集地址修改成正確的地址,<cluster-address>192.168.200.61:8001,192.168.200.61:8002</cluster-address>
請將192.168.200.61替換成172.29.1.226。儲存配置檔案,重啟weblogic服務。
4、堆記憶體溢位heapdump檔案自動生成,請在啟動引數中JAVA_OPTIONS加入:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=\youpath\log
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28833846/viewspace-2732918/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux系統常用的中介軟體Linux
- 工行內部通報6.23系統故障 系IBM軟體缺陷引發IBM
- redux 中介軟體入門Redux
- 解Bug之路-記一次中介軟體導致的慢SQL排查過程SQL
- 軟考 - 系統架構設計師(基於中介軟體的開發)架構
- 中介軟體的引數解析過程
- 一個系統BUG引發的血案 -- FKDownloader
- OA軟體行政管理系統解決方案
- 軟體Bug引發的十次嚴重後果
- 軟體 Bug 引發的十次嚴重後果
- OA辦公系統軟硬體結合的防護體系評估
- 部門老大的發言引發的思考
- 中小企業OA系統如何選型?OA軟體選型必看技巧
- 未來OA系統發展的六大趨勢
- 從中介軟體的歷史來看移動App開發的未來APP
- 記一次控制器中介軟體的使用
- 中介軟體、MetaQ入門學習
- 解Bug之路-中介軟體"SQL重複執行"SQL
- 政府OA系統選擇時要考慮的六個問題
- 介紹幾個Java大型中介軟體系統中須調整的Linux核心引數JavaLinux
- 共享店鋪門店系統開發軟體流程
- Redis中介軟體與Web中介軟體RedisWeb
- laravel11:中介軟體傳遞引數Laravel
- 什麼是OA系統?OA系統的協同門戶平臺有哪些特點?
- 【OA辦公】OA辦公系統行業未來的發展方向到底會怎樣?行業
- 孔子=?中介軟體開發框架?框架
- KingShard MySQL中介軟體快速入門MySql
- Nginx中介軟體——從小白到入門Nginx
- 銳智互動:OA系統資訊化管理平臺 軟體開發公司排名
- 中介軟體之訊息中介軟體-pulsar
- MES引發資訊部門的價值思考
- 軟體測試可以發現系統所有Bug嗎?靠譜的軟體測評機構有哪些?
- 醫療OA管理系統重磅來襲
- 從訊息中介軟體看分散式系統的多種套路分散式
- 分散式系統訊息中介軟體——RabbitMQ的使用進階篇分散式MQ
- 為什麼系統整合,需要經常用到中介軟體?
- redhat5.4部署中介軟體jboss7Redhat
- 一年增加 1.2w 星,Dapr 能否引領雲原生中介軟體的未來?