標籤:alt 配置 strong lock password use limit string 進程
現場出現了一個問題,oracle運行一段時間之後,process個數會溢出,然後新的串連會失敗。通過分析,發現Arcgis Server 的ArcSOC進程在不段增長。ArcSOC是arcgis server 的一個容器進程,該容器中裝載arcgis object。
計劃嘗試用兩個方法來解決/緩解這一問題。
方法一
調整每個服務的配置資訊,具體如下:
- 將空間執行個體可持續啟動並執行最長時間由1800s降低到600s
- 將執行個體的隔離等級設定為"低隔離性",如:
建議:先使用第一種方法修改服務配置(除system與utility目錄之外),然後試運行一段時間看效果。如果效果不明顯,再嘗試第二種方法。
方法二
將多個地圖合并成一個地圖,然後發布成一個服務。擬通過該方法減少服務的個數。
接下來按計划行事。使用第一種方法修改配置,然後重新啟動地圖服務,此時報錯:"the base table definition string is invalid",查看資料庫註冊資訊,然後使用該串連串嘗試手動登陸,竟然提示登陸失敗。再查看該賬戶的狀態,顯示為"EXPIRED"。
賬戶竟然到期了,這是不是arcsoc不斷增長的原因呢?極有可能,當串連請求失敗後,可能會不斷地嘗試重複請求串連,而每一次串連請求,arcgis server都會為其分配一個ArcSOC進程。如果是這樣,解鎖賬戶並重新賦密碼應該就可以解決問題。執行如下SQL:
Alter user xx identified by xx account unlock;
Alter profile default limit password_life_time unlimited;
再次重啟該地圖服務,OK,啟動成功。
持續觀察作業系統的進程情況,發現ArcSOC進程個數長期保持較穩定的水平,且oracle processes沒有再溢出。
至此,問題根因浮出水面,原來不是服務要求過多導致的,而是無效的登陸佔用了process但卻沒有釋放。
ArcSOC進程數不斷增長導致oracle processes溢出原因分析