2

SessionAwareMessageListener を実装するメッセージ リスナー (ActiveMQ を使用) があります。onMessage(Message,Session) メソッドが呼び出されると、メッセージを解析し、ロールバック/コミットを実行するためのセッションと共に、その処理をプロセッサに渡します。

外部キューに配置するために、新しいメッセージを作成する必要があります。その既存のセッションを使用してメッセージを作成しても問題ありませんか (現在これを行っています)、それとも実際に新しいセッションを作成して作成する必要がありますか? JMS セッションがどのように機能するかについて、私は少しぼんやりしています。

4

1 に答える 1

2

セッションは、通常 1 つの TCP 接続である接続を共有します。異なる接続は、異なるサーバーに対して行うことも、異なる TCP 接続を使用することもできます。

セッションはシングルスレッドです。これは、セッションで送受信されるメッセージが予測可能な順序になることを意味します。2 つの異なるセッションで 2 つのメッセージを送信した場合、それらは任意の順序で到着できます。(場合によってはこれが望ましい)

最も単純な使用例では、1 つのセッションで 1 つの接続を使用します。

于 2012-06-20T08:30:53.887 に答える