2012-06-14 56 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

然后,我认为你需要定义如何触发处理。如果这些消息是分组的,那么在处理它们之前,你需要等到你收到整个组?你怎么知道整个小组何时收到? –