一次政府部門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
- 一個系統BUG引發的血案 -- FKDownloader
- 解Bug之路-記一次中介軟體導致的慢SQL排查過程SQL
- 中介軟體的引數解析過程
- 軟考 - 系統架構設計師(基於中介軟體的開發)架構
- OA軟體行政管理系統解決方案
- 部門老大的發言引發的思考
- 介紹幾個Java大型中介軟體系統中須調整的Linux核心引數JavaLinux
- 中小企業OA系統如何選型?OA軟體選型必看技巧
- 解Bug之路-中介軟體"SQL重複執行"SQL
- 記一次控制器中介軟體的使用
- KingShard MySQL中介軟體快速入門MySql
- 政府OA系統選擇時要考慮的六個問題
- laravel11:中介軟體傳遞引數Laravel
- 軟體測試可以發現系統所有Bug嗎?靠譜的軟體測評機構有哪些?
- 共享店鋪門店系統開發軟體流程
- 什麼是OA系統?OA系統的協同門戶平臺有哪些特點?
- Redis中介軟體與Web中介軟體RedisWeb
- Nginx中介軟體——從小白到入門Nginx
- 2020年起韓國政府部門開始採用“安全郵箱”系統
- 中介軟體之訊息中介軟體-pulsar
- ERP系統給企業不同部門帶來的好處
- 分散式系統訊息中介軟體——RabbitMQ的使用進階篇分散式MQ
- 從訊息中介軟體看分散式系統的多種套路分散式
- 移動辦公OA中介軟體業務進入常態化
- 為什麼系統整合,需要經常用到中介軟體?
- 一年增加 1.2w 星,Dapr 能否引領雲原生中介軟體的未來?
- 醫療OA管理系統重磅來襲
- Express 中介軟體 getcookies 後門程式碼分析ExpressCookie
- 什麼是中介軟體?系統整合商系統整合的重要工具和技術手段
- MES引發資訊部門的價值思考
- 銳智互動:OA系統資訊化管理平臺 軟體開發公司排名
- 使用系統TabLayout的app快來修BugTabLayoutAPP
- 利用勒索軟體Locky的漏洞來免疫系統
- IM系統的MQ訊息中介軟體選型:Kafka還是RabbitMQ?MQKafka
- CRM中介軟體裡的釋出-訂閱者模式模式
- 中介軟體redis的使用Redis
- lumen的CORS中介軟體CORS