我在JBoss 5.1 GA中有一个MDB(mdbA),它监听MQ 7.0队列。接收后,消息将持久存储到MySQL数据库,我想将消息发送到另一个队列(queueB),然后继续处理mdbA中的消息,该消息执行更多插入并向HornetQ发送消息。一切都适用于第一条消息,我在数据库以及queueB和hornetQ中看到了消息。对于所有后续消息,“发送到queueB”会导致'MQRC_SYNCPOINT_NOT_AVAILABLE'error 2072。
我的mdbA有以下注释。 @TransactionAttribute(TransactionAttributeType.REQUIRED) @Service
如果我需要提供更多信息,请与我们联系。
有人可以帮忙吗?
答案 0 :(得分:0)
解决了WebLogic中的类似问题,其中MDB本身注释了@TransactionManagement(TransactionManagementType.BEAN),而选择@TransactionManagement(TransactionManagementType.CONTAINER)解决了问题,方法没有Transaction属性,因此默认为REQUIRED。
事实上,声音MDB可能会将事务委托给容器,而不是试图在代码中明确地控制它们。如果您使用BEAN管理类型并且未明确打开事务上下文,则不会有可用的同步点...