【问题标题】:Getting 'MQCC_FAILED' reason '2072' 'MQRC_SYNCPOINT_NOT_AVAILABLE' while attempting to send a message尝试发送消息时获取“MQCC_FAILED”原因“2072”“MQRC_SYNCPOINT_NOT_AVAILABLE”
【发布时间】:2014-01-31 17:19:39
【问题描述】:
我在 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)
@服务
如果我需要提供更多信息,请告诉我。
有人可以帮忙吗?
【问题讨论】:
标签:
ibm-mq
hornetq
jboss-messaging
【解决方案1】:
解决了 WebLogic 中的一个类似问题,其中 MDB 本身被注释 @TransactionManagement(TransactionManagementType.BEAN) 并选择 @TransactionManagement(TransactionManagementType.CONTAINER) 解决了该问题,方法上没有 Transaction 属性,因此默认为 REQUIRED。
事实上,健全的 MDB 可能会将事务委托给容器,而不是尝试在代码中显式控制它们。如果您使用 BEAN 管理类型并且没有显式打开事务上下文,则没有可用的同步点...