1

ActiveMQ にエラー キューがあり、Apache Camel の onException エラー ハンドラによって入力されます。このキューには何千ものメッセージが存在する可能性があります。

ActiveMQ Web コンソールを使用する代わりに、カスタム Web 管理を構築して、他のコンポーネントからの他のいくつかの統計も統合しています。したがって、ActiveMQ からの統計も含めたいと思いました。

ActiveMQ バージョン: 5.14.3

Jolokia JMX API とその操作を見てきました。たとえば、ブローカーの Jolokia API エンドポイントへの次のペイロードがあります。

{
    "type": "exec",
    "mbean": "org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=test.errors",
    "operation": "browse(java.lang.String)",
    "arguments": ["EXCEPTION_TYPE LIKE '%jdbc%'"]
}

ヘッダー フィールドEXCEPTION_TYPEは、Apache Camel Route を介して既に入力されています。現在、このキューには 10,000 件を超えるメッセージがあります。上記のペイロードを使用して、ブローカー API エンドポイントに POST 要求を行いました。10,000 件を超えるメッセージがありましたが、このリクエストの結果は 400 件のメッセージになりました (最大ページ サイズの制限のため、ソース コードにハード コードされています)。これは、Jolokia 経由で一度に 400 を超えるメッセージを取得できないことを意味します。また、browseMessages() メソッドも試しました。一般的に、同じことをしているように見えます。

  1. これらのメッセージを閲覧することはできますか (数が多い場合、約 10k+ になる可能性があります)。
  2. または、それらをページ付けすることは可能ですか? そのための適切な操作方法がわかりませんでした。

Hawtio がすべてのメッセージを取得する際に何か特別なことをしたかどうかを確認しようとしました。ただし、結果は同じです (最大 400 メッセージ)。

ActiveMQ Web コンソールはすべてのメッセージを取得します。これはおそらく、ActiveMQ プロジェクトと密接に結合されているためです。

私は JMX/Jolokia だけに限定されません。これらの統計が何らかの API を介して取得できる場合は、同様に問題ありません。

どんな入力でも素晴らしいでしょう!

4

0 に答える 0