Ejb 3.1 拥有一个消息驱动bean';火灾';因为两件事?

Ejb 3.1 拥有一个消息驱动bean';火灾';因为两件事?,ejb-3.1,message-driven-bean,Ejb 3.1,Message Driven Bean,我希望有一个MDB,只有在到达两个独立国家后才开火。例如: 事件A发生 一段时间过去了 事件B发生 MDB onMessage作为a和B事件发生的结果被调用 A和B事件被清除 例如,如果事件B发生,但事件A未发生,则我不希望触发onMessage。类似地,如果事件A发生但事件B未发生,我不希望onMessage触发。我还希望事件A和B相互关联,以便在触发onMessage时清除事件A和B 一种方法是让事件A生成一条消息,该消息的消息处理程序将检查事件B是否已发生,但它必须阻塞并循环,直到触发事件

我希望有一个MDB,只有在到达两个独立国家后才开火。例如:

事件A发生 一段时间过去了 事件B发生 MDB onMessage作为a和B事件发生的结果被调用 A和B事件被清除

例如,如果事件B发生,但事件A未发生,则我不希望触发onMessage。类似地,如果事件A发生但事件B未发生,我不希望onMessage触发。我还希望事件A和B相互关联,以便在触发onMessage时清除事件A和B

一种方法是让事件A生成一条消息,该消息的消息处理程序将检查事件B是否已发生,但它必须阻塞并循环,直到触发事件B。投票制度似乎效率低下

从功能上讲,这类似于CyclicBarrier,但通过消息传递实现


关于MDB是否可以实现类似的功能,您有什么想法吗?

没有内置的机制。我建议将增量状态存储在DB表中(在接收到第一个事件时插入,在接收到第二个事件时更新/删除)


我绝对不推荐投票;有太多的事情会出错(挂起的服务器线程、浪费的CPU、事务超时等)。

没有内置的机制。我建议将增量状态存储在DB表中(在接收到第一个事件时插入,在接收到第二个事件时更新/删除)

我绝对不推荐投票;有太多的事情会出错(挂起的服务器线程、浪费的CPU、事务超时等)