我們有一個需要並行化的Websphere Java EE應用程序,我們正在尋求使用這種並行化程序,其中包括CommonJ work components。使用common-j組件進行事務管理
每個'線程'都需要它自己的數據庫視圖。其中大部分是預取的,但仍需要到數據庫才能獲得一些。我們預計所有這些線程的整體工作持續時間將會「很長」(即足夠的時間來改變底層數據)。
因此,我們需要確保應用程序正在使用的數據的隔離以及在線程工作過程中查詢的數據。
看來,確保這一點的唯一方法是進行「全局」事務並使用XA事務。但是,如果可能的話,我們希望避免這種複雜性(和開銷),並且正在尋找想法或替代方案:任何想法?
另外,Common-J工作組件支持容器管理事務的程度如何(如果有的話)?
@Karl:也許我只是想開銷。我們的想法是,XA事務和消息傳遞會產生開銷,共享J事務組件共享事務可能會避免? 正在操作的數據集將有> 300k不同的數據行,每個數據行需要執行大約100次計算。儘管這些可以劃分到不同的線程上運行在共享的,緩存的只讀數據上,但複製到/讀出隊列的比較內存開銷看起來是過高的。你會同意嗎?
@Karl:每個實體的數十毫秒到幾百毫秒。我們還專注於將邏輯處理作爲一項單獨的任務加以改進。
當需要所有線程在單個數據庫中具有統一的數據視圖時,是否需要使用XA事務?我對此的回答是每個線程都需要自己的JPA EntityManager(例如連接),並且需要XA來協調其訪問。
但是,如果我可以做到這一點沒有XA那麼那麼更好,不是嗎?
我想你會感到驚訝XA和消息的開銷多低是WAS,聽起來更像是我會更擔心的邏輯及時處理數據。你認爲什麼樣的時間表是可以接受的,你認爲1個實體的處理會花多長時間?你也可以將非常簡單的WAS集羣化。卡爾 – Karl 2009-04-23 08:43:38