Websphere MQv7.1に接続されているSpringIntegration独自のJMSアウトバウンドチャネルアダプターの使用:
<!-- plugging xyz channel into a JMS xyzQueue -->
<channel id="xyzChannel"/>
<jms:outbound-channel-adapter channel="xyzChannel"
destination="xyzQueue"/>
<!-- will listen on all packets matched, and forward them to a xyzChannel -->
<beans:bean id="xyzSender" class="com.custom.XyzSender">
<beans:constructor-arg name="messageChannel" ref="xyzChannel"/>
</beans:bean>
MQブローカー(そのチャネル)が一瞬ダウンした場合、例外がログに記録されます。
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2537;AMQ9558: The remote channel 'XYZ_CHANNEL' is not currently available ('MQRC_CHANNEL_NOT_AVAILABLE').
MQドキュメントから、これらはこのエラーの考えられる理由です。
- チャネルは現在停止状態です。
- チャネルはチャネル出口によって停止されました。
- キュー・マネージャーは、このクライアントからのこのチャネルの最大許容限界に達しました。
- キュー・マネージャーは、このチャネルの最大許容限界に達しました。
- キュー・マネージャーは、すべてのチャネルの最大許容限界に達しました。
ただし、Spring Integrationは例外を食いつぶしているようで、MQチャネルが再び使用可能になってから一瞬で、他のメッセージは何も起こらなかったために処理されます。もちろん、メッセージのドロップが発生しますが、これは予期されたシナリオではありません。
この例外を処理する方法は何でしょうか?にエラーチャネル属性がないようですjms:outbound-channel-adapter
。