着信メッセージを処理する「MessageReader」pojo クラスをセットアップする以下の構成があります。これは構成されているため問題なく動作していますが、Spring Integration の経験があまりないため、下で何が起こっているのか、監視できるかどうかについていくつかの基本的な質問があります。
- 基になるメッセージ リスナー コンテナーがメッセージのキューをポーリングする頻度に関するドキュメントを見つけることができません。何か不足していますか?以下の構成を正しく理解していれば、デフォルトで「DefaultMessageListenerContainer」が使用されます。クラスが AbstractPollingMessageListenerConainer を拡張していることがわかります。receiveTimeout は表示されますが、ポーリング間隔を指定するものは何も表示されません。そのような設定はありますか?以下に示すように構成してテストすると、かなり瞬時に見えます。私たちのニーズはそれほど積極的ではありません。キューが 30 秒ごとにポーリングされていれば問題ありません。
- コンテナーが起動してキューでメッセージを検索したときに (何も見つからない場合でも) ログに記録できる方法 (おそらく単純に log4j 設定) はありますか? 私たちの維持チームは、メッセージが送信されていない場合でも、プロセスが「実行中」であることを確認できるようにしたいと考えています。つまり、コンテナーがハングした可能性がある場合のトラブルシューティングの方法が必要です。これは、メッセージが送信されたと思われるが受信されていない場合に、ハングしたスレッドを除外するための単なるツールです。
以下のようにデフォルトを受け入れるのではなく、コンテナーを構成する必要があるかもしれないことを認識していますが、上記のことを達成できればそれで問題ありませんか??
<int:channel id="inboundChannel" />
<jms:message-driven-channel-adapter
connection-factory="myConnectionFactory"
destination="queue" channel="inboundChannel" />
<int:service-activator input-channel="inboundChannel">
<bean class="com.myapp.MessageReader" />
</int:service-activator>