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