2016-12-28 99 views
1

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

当我尝试发送批量消息到MQ我得到下面提到的例外。我使用Spring集成代码从慰藉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相关的一些属性:消息驱动通道适配器从Spring集成或安慰MQ属性使用。请建议。

+2

请详细说明。这完全不清楚'int-jms:message-driven-channel-adapter'与** send **操作有关。 OTOH的例外情况也很清楚:“交易中的消息数量超过限制”。因此,请教Solace MQ如何处理这样的问题。另外,看到你真的发送“批量消息”是非常好的。 –

+0

int-jms:消息驱动通道适配器用于使用来自Solace MQ的消息。我正在使用hermesJMS收费来将消息放到MQ上。其简单的复制粘贴在工具中。 –

+1

而且?这没有帮助。你在哪里有这样的例外 –

回答

2

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

到目前为止,Solace在一次交易中最多支持256条消息。增加最大值是在Solace的候选功能列表上,但尚未提交到特定版本。

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