19.5. AMQ Broker プラグインのサポート
AMQ はカスタムプラグインをサポートします。このプラグインを使用して、デバッグログでのみ使用できる各種のさまざまな種類のイベントに関する情報をログに記録できます。複数のプラグインは、登録、関連付け、および実行が可能です。プラグインは登録の順序に基づいて実行されます。つまり、最初に登録されたプラグインが常に最初に実行されます。
カスタムプラグインを作成して、ActiveMQServerPlugin
インターフェイスを使用して実装できます。このインターフェイスにより、プラグインがクラスパスに置かれ、ブローカーに登録されます。すべてのインターフェイスメソッドはデフォルトで実装されるため、実装する必要がある動作のみを追加する必要があります。
19.5.1. プラグインのクラスパスへの追加 リンクのコピーリンクがクリップボードにコピーされました!
関連する .jar
ファイルを <broker_instance_dir> /lib
ディレクトリーに追加して、カスタム作成したブローカープラグインをブローカーランタイムに追加します。
組み込みシステムを使用している場合は、組み込みアプリケーションの通常のクラスパスの下に .jar
ファイルを配置します。
19.5.2. プラグインの登録 リンクのコピーリンクがクリップボードにコピーされました!
broker.xml
設定ファイルに broker-plugins
要素を追加してプラグインを登録する必要があります。property
子要素を使用して、プラグイン設定値を指定できます。これらのプロパティーは、プラグインがインスタンス化された後に読み取られ、プラグインの init (Map<String, String>) 動作に渡されます。
19.5.3. プログラムによるプラグインの登録 リンクのコピーリンクがクリップボードにコピーされました!
プラグインをプログラムで登録するには、registerBrokerPlugin()
メソッドを使用してプラグインの新規インスタンスを渡します。以下の例は、UserPlugin
プラグインの登録を示しています。
Configuration config = new ConfigurationImpl(); config.registerBrokerPlugin(new UserPlugin());
Configuration config = new ConfigurationImpl();
config.registerBrokerPlugin(new UserPlugin());
19.5.4. 特定のイベントのログ リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、AMQ Broker は LoggingActiveMQServerPlugin
プラグインを提供し、特定のブローカーイベントをログに記録します。LoggingActiveMQServerplugin
プラグインはデフォルトではコメントアウトされ、情報はログに記録されません。
以下の表は、各プラグインプロパティーを説明しています。設定プロパティーの値を true
に設定してイベントをログに記録します。
プロパティー | 説明 |
| 接続が作成または破棄されたときに情報を記録します。 |
| セッションの作成時または終了時に情報をログに記録します。 |
| コンシューマーが作成または閉じられたときの情報をログに記録します。 |
| メッセージがコンシューマーに配信され、メッセージがコンシューマーによって確認されると、情報を記録します。 |
| メッセージがアドレスに送信され、メッセージがブローカー内にルーティングされたときの情報をログに記録します。 |
| キューが作成または破棄されたとき、メッセージが期限切れになったとき、ブリッジのデプロイ時、および重大な障害が発生するときに、情報をログに記録します。 |
| 上記のすべてのイベントの情報をログに記録します。 |
接続イベントをログに記録するように LoggingActiveMQServerPlugin
プラグインを設定するには、broker.xml
設定ファイルの <broker-plugins>
セクションのコメントを解除します。すべてのイベントの値は、コメントされたデフォルト例では true
に設定されます。
<broker-plugins>
セクション内の設定パラメーターを変更する場合は、ブローカーを再起動して設定の更新をリロードする必要があります。これらの設定変更は、configuration-file-refresh-period
設定に基づいてリロード されません。
ログレベルを INFO
に設定すると、イベントの発生後にエントリーがログに記録されます。ログレベルが DEBUG
に設定されている場合、イベントの前後でログエントリーが生成されます ( 例 : beforeCreateConsumer()
および afterCreateConsumer())
。ログレベルが DEBUG
に設定されている場合、ロガーは利用可能な場合に通知の詳細情報をログに記録します。