我有一些代碼,我想只允許一個線程訪問。我知道如何使用塊或方法來完成此操作,但是這會在羣集環境中工作嗎?跨羣集共享Java同步塊,或使用全局鎖?
目標環境是WebSphere 6.0,集羣中有2個節點。
我有一種感覺將無法正常工作,因爲每個節點上的應用程序的每個實例都將有它自己的JVM,對吧?
我在這裏要做的是在系統啓動時對數據庫記錄執行一些更新。它將查找比代碼版本更舊的任何數據庫記錄,並執行特定任務來更新它們。我只希望一個節點執行這些升級,因爲我想確保每個工作項目只升級一次,並且這些升級的性能並不是一個大問題,因爲它只發生在應用程序啓動時,並且它只是真的做任何事情代碼自上次啓動以來已更改。
數據庫是DB2v9,我直接通過JNDI(無ORM層)訪問它。
有人建議,全局鎖定可能是這裏的方法,但我不知道該怎麼做。
有沒有人在這個舞臺上有任何指針?
謝謝!
我認爲你將不得不在你的問題上更具體。你想要協調什麼行動? – 2009-08-04 17:28:24
@Software Monkey-當然,對不起。我剛添加了一段解釋我的意圖。請讓我知道如果它仍然不清楚。 – pkaeding 2009-08-04 17:38:15
那麼你真正想要的是一個全局鎖。我不知道websphere,所以我不能幫助在這裏,但尋求幫助創建一個鎖可能會更多的響鈴與那些誰:) :) – bdonlan 2009-08-04 17:39:36