2011-11-28 65 views
1

Hibernate是否可以在Java事務開始時執行悲觀鎖定,還是在Java領域中的所有工作完成時依賴於應用悲觀鎖定,然後將這些更改作爲數據庫事務?Hibernate悲觀鎖是否與EHCache/Terracotta一起發佈?

我問我有一個Java事務,在這個事務的中途調用一個遠程Web服務,這是非事務性的,因此無法回滾。如果Hibernate對正在執行的數據持有一個悲觀的鎖定,那麼應該阻止事務處理,因爲Hibernate知道另一個線程已經在處理這些數據。如果Hibernate 不是自己跟蹤這些鎖,那麼Java事務將繼續,調用web服務,然後阻止數據庫提交。

我真正想要發生的事情是Java事務啓動,另一個線程嘗試啓動另一個事務,並阻止/失敗,因爲相關數據已經有一個進行中。

當Hibernate使用EHCache作爲2LC以分佈式方式與兵馬俑時,鎖定行爲如何受到影響?

回答

2

Hibernate悲觀鎖是數據庫鎖。鎖定委託給數據庫。二級緩存與它無關。

+0

這是值得大家注意的是** **樂觀鎖也是集羣安全。 –

+0

謝謝。我想我需要弄清楚在分佈式環境中是否有悲觀鎖定JTA事務的方式。 –