0

私のアプリケーションは Weblogic 10.3.5 にデプロイされています。2 つのシナリオを実行しました。

  1. 1 つのメッセージを送信する EJB (トランザクションあり) を 5000 回呼び出します。
  2. 5000 の JMS メッセージを送信する EJB を (トランザクションで) 呼び出す。

最初のシナリオはスムーズに実行されますが、2 番目のシナリオは終了せず、10 分後に OutOfMemory 例外が破棄されます。問題を調査したところ、トランザクションがコミットまたはロールバックされるまでメッセージが保留されたままになるために発生したと思います。

詳しくは:

  • 配信モードは非永続的です
  • セッションは自動承認されます

1回のトランザクションで大量のJMSメッセージを送信する方法を誰かが推奨できますか?

前もって感謝します。

4

1 に答える 1

0

そうです、トランザクションがコミットされるまでメッセージが積み重なっていきます。メッセージの内容は?5000 は大量のメッセージですが、メッセージごとのオーバーヘッドはそれほど大きくありません。ただし、メッセージが大きい場合は、確かに問題になります。その場合、マシンのメモリを増やす必要があるか、単一のトランザクションで 5000 を送信する必要があるか、または 5000 を送信する必要があるかを再評価する必要がある可能性があります。

于 2012-06-11T05:21:10.150 に答える