2011-04-08 82 views
1

我正在寫一個WLST腳本來部署一些WAR的和EAR。但是,間歇性地,腳本會超時,因爲它似乎無法獲得編輯鎖定(此腳本是許多其他腳本鏈的一部分)。我想知道,有沒有辦法覆蓋或停止服務器上的任何當前鎖?這只是一個臨時解決方案,但爲了時間的利益,它現在就可以做到。如何覆蓋編輯鎖

謝謝。

回答

2

你可以嘗試設置一個等待週期和超時:

startEdit([waitTimeInMillis], [timeoutInMillis], [exclusive]). 

是否有其他腳本示數,留下的會話鎖定?你可以嘗試添加異常處理。此外,如果您在管理控制檯中啓用了「自動獲取鎖定」並且有時使用管理控制檯,即使您沒有進行「鎖定要求」更改,但如果您同時運行腳本,也會導致問題。

此外,您使用的是同一個用戶的鏈接腳本?

+0

其他腳本都沒有發生錯誤。肯定需要更多的異常處理,但我必須在截止日期前處理我的工作。我將不得不調查一下關閉管理控制檯,我沒有意識到它可能會自動鎖定。這可能是問題所在。所有腳本都是相同的用戶。謝謝您的幫助! – noisesolo 2011-04-09 02:47:06

0

在WLST,您可以通過一些作爲參數,以獲得獨佔鎖。這使得腳本搶到了不同的鎖比普通的一個這些會用來每當從控制檯管理員鎖。它還可以防止同一腳本的兩個實例踩着對方。

然而,這產生了複雜的變化合並scenari最好避免(通過進程)的操作系統。

甲骨文對配置鎖文件可以發現here

或者,如果您希望臨時腳本緩解任何現有的鎖,無論是否有掛起的更改,也可以從控制檯禁用更改管理,從而最大限度地減少造成的不便。

WLST還包含cancelEdit命令,你可以你startEdit之前運行。希望其中的一個選項可以泛出!

0

只要你運行WLST作爲管理員用戶,你應該能夠跳進現有的編輯會話與編輯()命令 - 我做了一個快速的測試有兩個管理員用戶,一個在管理控制檯以及使用WLST的管理控制檯,並且它看起來工作正常 - 我可以在WLST解釋器中查看管理控制檯會話中的更改。

你可以把周圍的通話很簡單的異常處理程序startEdit將登錄異常的堆棧跟蹤,而是別的什麼也不做。然後依靠edit調用讓你進入更改會話。

依靠這將是棘手的,但如果另一個腳本已經開始編輯會話,並期望能夠提交更改會話本身 - 你會在多個調用中獲得異常和不可靠的行爲。

0

要從另一位管理員處取得配置更改鎖定: 如果另一位管理員已有配置鎖定,則顯示以下消息:另一個用戶已擁有該鎖定。您需要等待鎖定被釋放,或者需要鎖定。

  1. 找到位於 管理控制檯左上角的更改中心。
  2. 點擊拿鎖&編輯。
  3. 進行配置更改。
  4. 在更改中心中,單擊激活更改。並非所有更改立即生效 。有些需要重新啓動(請參閱使用更改 中心)。