私は最初の本物の Camel ベースの Java アプリを開発していますが、メインの Camel スレッドが死んだ/終了した結果であると思われる奇妙で複雑な問題に直面しています。
基本的に、ルート自体はほんの数個のプロセッサーで構成されており、プロセッサーの 1 つは、完了するまでに 20 秒から 25 秒かかる重い計算を実行します。アプリは全体として、例外/エラー/ログ ステートメントをスローせずに終了しています。これは、何かがうまくいかなかったことを示すその他の兆候であり、これらの高価な計算を実行している間に死んでいます。
問題を診断する人を探しているわけではありません。Camel ルートを強制的に存続させる方法が必要なだけです。なぜなら、メインの Camel スレッドがルートの最後に到達し、それを停止していると私が信じているからです。アプリケーションをシャットダウンします。メインの Camel スレッドを、たとえば 60 秒間存続させて、少なくとも要因として除外できるかどうかを確認したいと思います。
Java DSL を使用している場合は、ルートの最後に次のコードを追加します。
.to(new Processor() {
@Override
public void process(Exchange exchange) {
try {
Thread.sleep(60000);
} catch(Throwable t) {
// ...
}
}
})
.to("direct:endOfRoute");
Spring DSL (XML) を使用しています - 何かアイデアはありますか? 前もって感謝します!