1

現在、webMethods キューにメッセージを送信するために JmsTemplate の send(Destination, messageCreator) メソッドを使用しています。ただし、 send メソッドが返すのに時間がかかりすぎて、タイムアウトが 5 秒しかないため余裕がない場合があります。私の質問は、どうすればこれを保証できるでしょうか? JmsTemplate には送信タイムアウトがないようです。

私が考えているオプションは、send() メソッドからの応答を 5 秒待つことです。5 秒以上経過した場合は不合格とします。ただし、送信された (送信しようとした) メッセージがまったく処理されないようにする必要があります。これは、この要求が失敗したと見なされるためです。どうやってこれを行うのですか?ロールバック?ありがとう!

4

1 に答える 1

1

これJmsTemplateは、コア JMS API に対するより高いレベルの抽象化です。そのコア (JMS) API には、そのようなメカニズムはありません。

JMS 送信にそれほど時間がかかるのは非常に珍しいことです。あなたが本当に巨大なメッセージと遅いネットワークを持っていない限り.

別のスレッドで送信を処理し、5 秒後に中断することもできますが、それは JMS クライアント ライブラリ コードが中断可能な場合にのみ機能します。

ただし、競合状態のため、通常、希望することを確実に行うことは不可能です。

于 2014-03-31T12:53:17.483 に答える