AdminServer.lok被鎖導致啓動、關閉域失敗

一、判斷AdminServer.lok被其進程鎖死                       

>weblogic.management.ManagementException: Unable to obtain lock on *******/AdminServer.lok. Server may already be running

  由於Weblogic的域以單例形式存在,因此當執行startWeblogic.cmd或stopWeblogic.sh時出現上述信息,則表示該域已被啓動或其他進程鎖定了AdminServer.lok文件導致無法啓動該域。

此時若執行stopWeblogic.cmd或stopWeblogic.sh時報異常,則表示AdminServer.lok文件被其他進程鎖死了。

 

二、解決辦法                                    

  辦法只有一個,就是殺死鎖定AdminServier.lok的進程。linux和windows下的操作有所不同,具體如下:

1. Linux下

  通過 fuser -u 文件名 找出佔用文件的進程PID,然後殺死即可。

fuser -u *******/AdminServer.lok
*******/AdminServer.lok 1800958
kill 1800958

2. Window下

  暫時未找到類似Linux下的 fuser -u 文件名 這麼好用的命令,於是只能笨笨地走下面的步驟了。

  2.1  netstat -aon | findstr 域端口號 ,通過域的端口號找進程PID,若找到則殺死進程即可,否則進行步驟2.2

  2.2. 由於一般都是java.exe佔用AdminServer.lok,所以通過 wmic process where caption="java.exe" get handle 獲取PID,並殺死即可。

 

三、出現該情況的原因                                  

 據我現階段實踐所知,導致上述問題的原因爲。

 1. 使用其他程序沒有先調用stopWeblogic.cmd,而是直接強制殺死已啓動的域進程時,就會出現該情況

 

四、總結                                        

  本章是實踐經驗的記錄,解決方案和問題原因仍不全面,希望各位可以補充,多謝各位支持。

  尊重原創,轉載請註明來自:http://www.cnblogs.com/fsjohnhuang/p/3972205.html  肥仔John

 

五、參考                                        

http://blog.sina.com.cn/s/blog_5c0172280100udk6.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章