私は JBoss Community フォーラムをあきらめています - そこでは質問に対する回答を得ることはありません。代わりにここで試してみてください。
ライブ環境で見た問題を診断するのに役立つ小さなテスト プログラムを作成しましたが、JBoss MQ で構成可能な設定が無数にあることに少し混乱しており、それらのどれもが何もしないという事実にさらに混乱しています。違い。
環境はJBoss 4.0.,4です。
ライブ環境では、スタンドアロン Java アプリケーションからリモート マシン上の JBoss MQ トピック (MDB によってサービスされる) への JMS 接続が失われています。なぜそれが失われているのか(そして例外リスナーが作動しているのか)については、利用可能な情報がありません。
そこで、リモート JBoss 上のトピックに TextMessages (増分番号を含む) を送信する Java アプリケーションを使用してテスト環境を作成しました。
MDB コードが行うことは、TextMessage に数値を出力することだけです。
最初に気付いたのは、印刷するスレッドが「JMS SessionPool Worker-XX」と呼ばれていることです。ここで、XX は 0 から 32 です。送信者アプリケーションを再度実行すると、XX の値は 32 から 46 です。 run の場合、値は 46 ~ 60 です。パターンは常に同じです。JBoss の開始後の最初の実行ではより多くのスレッドが使用され、その後の実行では 14 または 15 のスレッドが使用されます。
では、質問 1: そのパターンの説明はありますか?
約 15,000 のメッセージを送信する実行中に、jms_messages テーブルが JBoss マシン上に構築されます。それは、JBoss MQ が追いつかないということですよね? 私は、メモリーが mysql-jdbc2-service.xml の MessageCache MBean 定義で指定されたしきい値を超えているに違いないと想定しました。しかし、JVM メモリを監視すると、HighMemoryMark に指定された 150MB の値にはほど遠いです。MessadeCache Bean の定義に関するこのコメントを誤解していると思います。ヒープ使用量が 150MB に達すると、受信したメッセージが jms_messages に書き込まれるようになると思っていましたが、明らかに間違っていました。
質問 2: JBoss MQ が jms_messages への書き込みを開始する状況はどのようなものですか?
最後にもう 1 つ質問があります。以下のコンテナー構成設定は、メッセージを処理しているスレッドの数に関係がありますか?
<container-pool-conf>
<MaximumSize>500</MaximumSize>
<container-pool-conf>
ありがとうございました。