MessageDrivenBean实例标识符

时间:2017-03-20 15:11:09

标签: java-ee ejb jms message-driven-bean

是否可以获取正在执行的MDB实例的标识符? 我有一个MDB池(例如10),我在我的消息中设置了属性JMSXGroupID,以便使用相同的MDB实例处理具有相同JMSXGroupID的所有消息。 要检查我是否要记录当前MDB实例的标识符:如何获取该信息?

1 个答案:

答案 0 :(得分:2)

根据EJB规范,没有这样的标识符,尽管可能使用您的MDB供应商API实现。

您总是可以在@PostConstruct方法中创建唯一的MDB标识符,但在我看来这不是一个好的解决方案,因为池中的所有bean都应该以相同的方式处理!

也许您可以将JMSXGroupID设置为消息头,并使用MDB中的消息选择器来处理给定的MDB实现,以便在给定队列(example)上侦听多个bean?

或者您可以创建通用的MDB bean,它将提取前面提到的标头并使用您愿意按照JMSXGroupID实现的状态调用EJB单例bean。