標題可能不夠明確,所以讓我試着解釋一下。我正在開發一個基於.NET的新項目,它由使用WCF Web服務訪問Oracle數據庫的WPF客戶端組成。問題不在於這個基礎架構,而在於它如何與已經存在的東西協同工作。如何在SOA架構中執行SELECT .. FRO UPDATE的等效操作?
目前,應用程序使用PowerBuilder編寫並直接連接到數據庫。此外,他們廣泛使用Oracle的SELECT .. FOR UPDATE
語句來通過鎖定記錄來管理併發性。由於新應用程序必須與舊應用程序並排存在,因此它們也應該以類似的方式鎖定記錄,但依賴於Web服務的新架構並沒有使這一點變得簡單。
目前,我們想要做的是構建一個「數據服務器」,它將被Web服務調用並負責訪問數據庫。此服務器的目的是維護在幾個Web服務調用中維護記錄鎖所需的打開連接/事務。這是必需的,因爲需要SELECT .. FOR UPDATE
的操作的「選擇」部分和隨後的「更新」部分最可能發生在至少兩個單獨的Web服務調用(「獲取記錄」和「後更新」)中。
我在互聯網上搜索了關於這種情況的文檔,但我似乎無法找到關於這個問題的很多內容。可以這樣 - 即。在多個Web服務調用中保持記錄鎖打開 - 完成?正常嗎?我的方法是否合適?有沒有公布關於此事的「最佳實踐」?
更新:問題的原始標題是如何使用面向服務的體系結構維護記錄鎖定?我按照約翰的建議改變了它,希望它可以激發一些答案。
PS。如果這個問題不適合SO(我可能不夠具體),我提前向網站的版主道歉。如果它必須關閉,或者移到其他地方,我會理解的。對於其他訪問者,如果你需要更多的細節,我會很樂意提供。 – madd0 2012-07-09 22:55:05
你真的應該問一個更具體的問題。例如,可以將其縮小爲「如何在SOA架構中執行相當於select的更新」 – 2012-07-09 23:12:22
您可能想看看共享服務器和drcp。 – steve 2012-07-10 01:09:01