ヒューズでトピックと耐久性のあるトピックをテストするサンプル コードを開発しましたが、問題に直面しました。
サンプル コードの説明 サンプル コードは 3 つのバンドルで構成され、各バンドルには独自の camel コンテキストと独自のルートがあるため、次のように 3 つのバンドルに 3 つのルートがあります。
bundle1 route : ファイル システムからファイルを消費し、キューに送信します
<route id="producer-route">
<from uri="file:D://camel_test"/>
<to uri="activemq:queue:service.queue"/>
</route>
バンドル 2 ルート: 前のキューからのメッセージを消費し、トピックに送信します
<route id="router-route">
<from uri="activemq:queue:service.queue"/>
<to uri="activemq:topic:router.topic"/>
</route>
bundle3 ルート: 前のトピックからのメッセージを消費し、ファイル システムに送信します。
<route id="consumer-route">
<from uri="activemq:topic:router.topic?clientId=consumer&durableSubscriptionName=bar"/>
<to uri="file:D://camel_test2"/>
最初のフォルダ "D://camel_test" にファイルを入れると、95% のケースでサンプル コードが正常に実行され、"D://camel_test" フォルダからファイルが消えて 2 番目のフォルダ "D ://camel_test2"
問題の説明 • 5% のケースで、ファイルが 2 番目のルートで消費されず、jconsole でコンシューマとキューを確認すると、添付の jconsole スクリーン ショット (2 .png)。o 添付の jconsole スクリーン ショット (1.png) に示すように、キューのデキュー カウントがゼロのときに、キューのエンキュー カウントが増加します。
• この問題は多くの場合に発生しますが、最も再現性の高いケースは Fuse ESB の再起動後です。
• 問題が発生しない ヒューズの再起動のたびに、サンプル コードはヒューズの再起動後に問題なく正常に実行されることがよくあります。
重要な注意事項: bundle2 と bundle3 を更新すると、常に問題は解消されます。
教えていただけますか?