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:?]

この例外は、Spring 統合または Solace MQ プロパティから使用される int-jms:message-driven-channel-adapter のいくつかのプロパティに関連しています。提案してください。

4

1 に答える 1

2

例外は、1 回のトランザクションで送信するメッセージが多すぎることを意味します。

現在、Solace は 1 つのトランザクションで最大 256 のメッセージをサポートしています。最大値を増やすことは、Solace の機能候補リストにありますが、特定のリリースにはまだコミットされていません。

今のところ、唯一の回避策は、トランザクション内のメッセージ数を減らすことです。

于 2016-12-29T02:59:49.047 に答える