Jboss 4.2.2にデプロイされたMDBと、メッセージを生成し、メッセージが送信される前に作成された一時キューを介してMDBからの応答を期待する同じサーバー上のクライアントがあります。
クライアントを実行すると、メッセージが作成され、キューに入れられて応答を待機していることがわかります(これまでのところ問題ありません)...しかし、ログをチェックインすると、タイムアウトに達し、応答がないことがわかります受け取ります。タイムアウトが発生し、クライアントのメソッドが完了すると、MDBは、クライアントがメッセージをキューに入れた瞬間に処理されるべきであったメッセージの処理を開始します。このタイミングの問題の結果として、MDBが一時キューに応答しようとすると、クライアントがすでになくなっているため失敗します。
リモートサーバーから同じクライアントを実行している場合、問題はありません... MDBはキューからメッセージをすぐに取得し、クライアントは処理が完了した直後に応答を受信します。
コンテナ管理のトランザクションを使用しています。それはそれと関係があるのではないかと思います...クライアントの「メッセージの送信/応答の受信」は、メッセージをキューに入れることをコミットする前に、すべてトランザクションと見なされる可能性があります...しかし、正解です。この場合、リモートクライアントから同じ動作が見られなかったのはなぜですか?クライアント管理のトランザクションはデフォルト設定であり、それが私のリモートサーバーが使用していたものですか?
これを修正する方法はありますか?
前もって感謝します!PJ