1

1.png 2.pngヒューズでトピックと耐久性のあるトピックをテストするサンプル コードを開発しましたが、問題に直面しました。

サンプル コードの説明 サンプル コードは 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&amp;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 を更新すると、常に問題は解消されます。

教えていただけますか?

4

0 に答える 0