6

複数の JMS キューを使用するアプリケーションがあります。アプリケーションの問題は、ログがほとんど作成されないことです。アプリケーションを停止し、ソースを更新して、もう一度起動することは避けたいと思います (ただし、これを行う方法が他にない場合は、そうせざるを得ません)。アプリケーションはリモート サーバーで実行されているため、リモート デバッグはメッセージの量が原因で苦痛になります。

アプリケーション フローを中断することなく、キュー上のメッセージの内容を確認する方法があるかどうかを考えていました。これまでのところ、jboss-cli を使用してそれを実行しようとしていました。まず、次のコマンドでキューの処理を一時停止しました。

/subsystem=messaging-activemq/server=default/jms-queue=myQueues.input:pause

その後、キューの内容を次のように取得しました。

/subsystem=messaging-activemq/server=default/jms-queue=myQueues.input:list-messages

次の出力が得られました。

{
"outcome" => "success",
"result" => [{
    "JMSPriority" => 3,
    "JMSMessageID" => "ID:d50aef44-edcc-441c-818c-7d97200926cf",
    "someOfMyKeys" => "someOfMyValues",
    "JMSExpiration" => 1487255104511L,
    "__AMQ_CID" => "ecdec0e2-b7c1-4d2e-b55b-317c38023b1b",
    "JMSTimestamp" => 1487255094511L,
    "JMSDeliveryMode" => "NON_PERSISTENT"
}]

}

結局、キューを再開しました。

/subsystem=messaging-activemq/server=default/jms-queue=myQueues.input:resume

それにもかかわらず、これはメッセージの実際の内容を返しません。コンテンツをバイト形式で取得できれば十分です (tcpdump の出力と同様)。

それを達成する方法はありますか、または以前に言及した方法 (リモート デバッグ/アプリ ソースの変更) を使用する必要がありますか?

4

0 に答える 0