2

在我的应用程序中,我们使用 Solace MQ 并使用 HermesJMS 工具将消息发送到本地环境中的 MQ。

当我尝试向 MQ 发送批量消息时,我得到下面提到的异常。我使用 Spring Integration 代码来使用来自 Solace MQ 的消息

Caused by: com.solacesystems.jcsmp.transaction.RollbackException: Transaction '404' unexpectedly rolled back during commit attempt. (((Client name: ILCH-D889198/13740/#00020005   Local addr: 10.80.29.163:51052   Remote addr: appwpcuteai09.ntrs.com:55555) - )  com.solacesystems.jcsmp.JCSMPErrorResponseException: 503: Transaction Failure: The number of messages in the transaction exceeds the limit [Subcode:63])
                at com.solacesystems.jcsmp.impl.transaction.TSState$StateCommitting.handleAsyncAdCtrl(TSState.java:528) ~[jcsmp-7.0.0.63.jar:?]
                at com.solacesystems.jcsmp.impl.transaction.TransactedSessionImpl.handleControlMessage(TransactedSessionImpl.java:326) ~[jcsmp-7.0.0.63.jar:?]
                at com.solacesystems.jcsmp.impl.transaction.TransactedSessionManager.dispatchAssuredCtrlMessage(TransactedSessionManager.java:91) ~[jcsmp-7.0.0.63.jar:?]
                at com.solacesystems.jcsmp.impl.transaction.TransactedSessionManagerSmf.handleAsyncAssuredCtrlMessage(TransactedSessionManagerSmf.java:167) ~[jcsmp-7.0.0.63.jar:?]

此异常是否与 int-jms:message-driven-channel-adapter 中的某些属性相关,该属性用于 Spring 集成或 Solace MQ 属性。请建议。

4

1 回答 1

2

异常意味着您在单个事务中发送了太多消息。

截至目前,Solace 在单个事务中最多支持 256 条消息。增加最大值在 Solace 的候选功能列表中,但尚未提交到特定版本。

目前,唯一的解决方法是减少事务中的消息数量。

于 2016-12-29T02:59:49.047 回答