1

我在 JBoss 5.1 GA 中有一个 MDB (mdbA),它监听 MQ 7.0 队列。接收后,消息被持久化到 MySQL 数据库,我想将消息发送到另一个队列 (queueB),然后继续在 mdbA 中处理消息,它会进行更多插入并将消息发送到 HornetQ。对于第一条消息,一切正常,我在数据库以及 queueB 和 hornetQ 中看到了该消息。对于所有后续消息,“发送到 queueB”会导致“MQRC_SYNCPOINT_NOT_AVAILABLE”错误 2072。

我的 mdbA 有以下注释。@TransactionAttribute (TransactionAttributeType.REQUIRED) @Service

如果我需要提供更多信息,请告诉我。

有人可以帮忙吗?

4

1 回答 1

0

解决了 WebLogic 中的类似问题,其中 MDB 本身被注释 @TransactionManagement(TransactionManagementType.BEAN) 并选择 @TransactionManagement(TransactionManagementType.CONTAINER) 解决了该问题,方法上没有 Transaction 属性,因此默认为必需。

事实上,健全的 MDB 可能会将事务委托给容器,而不是试图在代码中显式地控制它们。如果您使用 BEAN 管理类型并且没有显式打开事务上下文,则没有可用的同步点...

于 2015-06-22T13:06:29.677 回答