我有幾個在同一行上執行的調度進程。其實這一行是需要發送的短信。第一個過程是@Asynchronious過程,當我按下發送按鈕時調用,第二個過程是@調度過程,每分鐘調用一次。在我寫了一個SMS到數據庫之後,它的狀態爲0.在我成功或失敗地發送它之後,它將相應地具有狀態2或3。問題是,當我從DB2讀取SMS時,但在實際發送之前,第二個進程可以讀取併發送它。所以,我的問題如何防止呢?我可以鎖定特定的行來閱讀嗎?另一種方法是在讀取特定行時添加額外狀態「處理」並更改此狀態,但我懷疑是否可以同時讀取和寫入?我雖然也關於全球旗幟,這將表明這個過程不能運行,但我不僅尋找解決方案,我還尋找最正確的解決方案。非常感謝你!我可以鎖定一排DB2以供閱讀嗎?
很遺憾,我的英語傢伙,如果有人將編輯它,我會很感激。
請注意,只有您有一臺服務器才能使用該功能。找到一個數據庫解決方案可能是最好的。請注意,通過正確的隔離級別,如果您執行了對該行的讀取,那麼將在事務處理期間將其鎖定以供讀取,並且可以稍後進行更新。或者,您可以選擇更新以使用寫入意圖進行讀取。 – 2014-10-27 15:42:29
感謝您的警告我會盡力實施這個解決方案。 – Anatoly 2014-10-28 05:36:12