6.3. JMS API を使用した AMQ Broker の管理
Java Message Service (JMS) API を使用すると、メッセージの作成、送信、受信、読み取りが可能です。ブローカーを管理するには、JMS と Red Hat build of Apache Qpid JMS クライアントを使用できます。
6.3.1. JMS メッセージおよび Red Hat build of Apache Qpid JMS クライアントを使用したブローカー管理の設定
JMS を使用してブローカーを管理するには、まず manage
パーミッションでブローカーの管理アドレスを設定する必要があります。
手順
-
<broker_instance_dir>/etc/broker.xml
設定ファイルを開きます。 <management-address>
要素を追加し、管理アドレスを指定します。デフォルトでは、管理アドレスは
activemq.management
です。デフォルトを使用しない場合は、別のアドレスを指定する必要があります。<management-address>my.management.address</management-address>
管理アドレスに
manage
ユーザーパーミッションタイプを指定します。このパーミッションタイプにより、管理アドレスの管理メッセージが受信および処理できるようになります。
<security-setting-match="activemq.management"> <permission-type="manage" roles="admin"/> </security-setting>
6.3.2. JMS API および Red Hat build of Apache Qpid JMS クライアントを使用したブローカーの管理
JMS メッセージを使用して管理操作を呼び出すには、Red Hat build of Apache Qpid JMS クライアントで特別な管理キューをインスタンス化する必要があります。
手順
-
QueueRequestor
を作成して、管理アドレスにメッセージを送信し、返信を受信します。 -
Message
を作成します。 -
ヘルパークラス
org.apache.activemq.artemis.api.jms.management.JMSManagementHelper
を使用して、メッセージに管理プロパティーを記入します。 -
QueueRequestor
を使用してメッセージを送信します。 -
ヘルパークラス
org.apache.activemq.artemis.api.jms.management.JMSManagementHelper
を使用して、管理応答から操作結果を取得します。
例6.2 キュー内のメッセージ数の表示
以下の例は、JMS API を使用して JMS キュー exampleQueue
でメッセージの数を表示する方法を示しています。
Queue managementQueue = ActiveMQJMSClient.createQueue("activemq.management"); QueueSession session = ... QueueRequestor requestor = new QueueRequestor(session, managementQueue); connection.start(); Message message = session.createMessage(); JMSManagementHelper.putAttribute(message, "queue.exampleQueue", "messageCount"); Message reply = requestor.request(message); int count = (Integer)JMSManagementHelper.getResult(reply); System.out.println("There are " + count + " messages in exampleQueue");