2009-10-26 53 views
1

我們現在在我們的Web應用程序中遇到了由2個或更多用戶更新相同內容導致的一系列InvalidItemStateException。據我瞭解,JackRabbit的設計在這種情況下拋出javax.jcr.InvalidItemStateException並沒有問題,但我想問一下處理這種情況的常用方法。我們確信最後一次處理的更改會贏得更新。到目前爲止,我們已經提出了下面的代碼:在jackrabbit中處理InvalidItemStateException

repeat = false; 
do { 
    try { 

    // Do node update/remove 

    } catch (InvalidItemStateException e) { 
    repeat = true; 
    } 
} while (repeat); 

這是一個常見的模式如何處理這個問題?還是避免這種情況的更好方法?

回答

1

JCR(和Jackrabbit)有一個節點鎖定機制,可能更適合這個......對不起,雖然我還沒有用它來確定它會解決你的問題。

祝你好運。

0

爲了避免InvalidItemStateException,每個線程/用戶都應該擁有自己的Session對象。

+0

-1讀取java文檔中的異常「...通過另一個會話創建」 – TedTrippin 2014-03-12 12:09:59