2012-06-14 59 views
0

批處理我有一個像下面的要求。與Java EE/EJB3

已經有一個WebSphere服務器和一個MDB模塊存在,在一個數據庫表中仍然存在的消息。每行將在列中標記爲INSERTED狀態。

現在我們需要開發其他應用程序或批處理應用程序挑選這些消息並處理該數據庫中的每一行和標記這些狀態完成一次處理完畢。

這樣做的最好方法是什麼?我們聽說EJB 3.1 Singleton啓動bean將對啓動批處理應用程序有用嗎?

回答

2

一種選擇是用於處理郵件創建第二JMS隊列。作爲將消息寫入數據庫的事務的一部分,將消息的ID添加到新隊列中。

你處理的應用程序可以作爲再連接到這個新的隊列的MDB來完成。這將消息的接收與處理分開,以便您可以相應地管理您的MDB池大小。也意味着不需要輪詢數據庫來檢查新消息。

+0

感謝尼克。我認爲如果我們一個接一個地進行處理,上述將是一個解決方案。但是我要處理的消息需要它們之間的同步。例如,在DB中有100行,並且具有相同ID的3個消息。如果我們有三個MDB選擇這3條消息如何同步這些消息?是否有任何解決方案,因爲我們需要一個批處理同步它們之間的同步。預先感謝 – user809648

+1

然後,我認爲你需要定義如何觸發處理。如果這些消息是分組的,那麼在處理它們之前,你需要等到你收到整個組?你怎麼知道整個小組何時收到? –