今天早上FlowPortal系統突然出現如下報錯:
連接配接伺服器”127.0.0.1″失敗。
原因:
No connection could be made because the target machine actively refused it 127.0.0.1:1590

經過一系列查詢發現是角色表裡有重複值造成的,如果有重複值,不重新開機服務,系統可以繼續使用,如果有重複值,服務無法啟動。
說一下查詢思路:
- 是不是伺服器down掉了?發現伺服器可以登入。
- 是不是FlowPortal服務死掉了?登入檢視,果然是服務沒啟動。嘗試手動啟動,結果:失敗,提示如下:
提示不太明确,貌似和其它服務有關系,嘗試重新開機伺服器。結果:服務并沒有自動重新開機,再次嘗試手動啟動,還是報同樣的錯誤。
電話咨詢了FlowPortal專家Troy Cui,建議先看日志,然後根據日志找原因,發現問題及時聯系。
檢視伺服器日志,到底發生了什麼。
把過去3小時的,System和Application中所有的Error和Warning日志依次檢視,并沒有發現和FlowPortal有關的内容。
然後檢視YZSoft的日志,有很多Waring,但都沒有導緻服務down掉的資訊。
剩下的都是Information,有三條貌似有關系。
Create connection failed(data source:Default)!reason:
A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 – The specified network name is no longer available.)
Create connection failed(data source:Default)!reason:
Cannot open database “BPMDB” requested by the login. The login failed.
Login failed for user ‘sa’.
OUProvider BPMOUProvider.OrgProvider failed during loading! detail:
Loading BPMOU organization fialed, System exit, Reason
Object with the same name “5/GCM Actives” already exists.
看起來前兩條比較嚴重,都是連接配接資料庫出了問題。
- 基于現在的查詢,猜想:系統連接配接資料庫出了問題,應該是程式出錯了,丢失了什麼檔案,或者資料庫出錯了,不能打開。然後在錯誤的道路上一路狂奔,搞了接近6個小時。才發現方向錯了。
- 先驗證資料庫是否損壞,發現未損壞,完全可以打開。
-
那說明FlowPortal系統出了問題,把資料和所有檔案全部備份,然後重新裝一下。
重建立了個資料庫,重新裝,裝完,發現可以打開。把老程式覆寫掉新程式,發現照樣可以打開。不祥的感覺,程式沒問題,資料庫的問題。或者說資料的問題,那麼多表,怎麼找到錯誤的資料?
- 下載下傳了一個Data Delta,試用14天,然後對比兩個資料庫,先對比結構,發現沒異常,然後對比資料,把能轉移的表全部轉移到新資料庫。有主鍵的資料庫都可以轉移過去。轉移完,發現資料庫還是可以使用。
手動轉移那些不包含主鍵的表。當轉移到BPMSysOURoles時,突然報錯。
删掉表BPMSysOURoles,系統可以正常通路。
檢視BPMSysOURoles,裡面竟然有兩行同樣的資料。是以系統報錯。删掉其中一行,系統正常通路。突然想到前面的第三個報錯,裡面提示的就是表裡面重複行的内容資訊。
回顧整個過程,如果資料有重複行,不重新開機服務的情況下,是可以繼續使用的。如果重新開機,則不能啟動服務。這裡面也包含了系統的一個Bug,維護角色的時候,系統應該提示,不能維護相同名稱的角色。
總結:對系統日志要認真讀,認真思考,然後再采取行動,有的放矢。