6.4. 管理操作


JMX または JMS メッセージを使用して AMQ Broker を管理する場合でも、同じ API 管理操作を使用できます。管理 API を使用すると、ブローカー、アドレス、およびキューを管理できます。

6.4.1. ブローカー管理操作

管理 API を使用してブローカーを管理できます。

キューのリスト表示、作成、デプロイ、破棄

デプロイされたキューのリストは、getQueueNames() メソッドで取得できます。

キューは、ActiveMQServerControl の管理操作 createQueue()deployQueue()、または destroyQueue() を使用して作成または破棄できます (ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" またはリソース名 server を使用)。

deployQueue が何もしない間、キューがすでに存在する場合、createQueue は失敗します。

キューの一時停止および再開
QueueControl は、基礎となるキューを一時停止したり、再開したりすることができます。キューが一時停止すると、メッセージは受信されますが、配信されません。再開すると、キューに格納されたメッセージの配信を開始します (存在する場合)。
リモート接続のリスト表示および閉じる

listRemoteAddresses() を使用して、クライアントのリモートアドレスを取得します。また、closeConnectionsForAddress() メソッドを使用して、リモートアドレスに関連する接続を閉じることも可能です。

または、listConnectionIDs() を使用して接続 ID をリスト表示し、listSessions() を使用して指定の接続 ID の全セッションをリスト表示します。

トランザクションの管理

ブローカーがクラッシュした場合、ブローカーの再起動時に一部のトランザクションを手動で介入する必要がある場合があります。以下の方法を使用して、発生した問題を解決します。

listPreparedTransactions() メソッドリストを使用して、準備済み状態のトランザクションをリスト表示します (トランザクションは不透明な Base64 文字列として表されます)。

commitPreparedTransaction() または rollbackPreparedTransaction() を使用して、指定された準備済みトランザクションをコミットまたはロールバックし、ヒューリスティックトランザクションを解決します。

listHeuristicCommittedTransactions() メソッドおよび listHeuristicRolledBackTransactions メソッドを使用して、ヒューリスティックに完了したトランザクションをリスト表示します。

メッセージカウンターの有効化およびリセット

enableMessageCounters() または disableMessageCounters() メソッドを使用して、メッセージカウンターを有効または無効にします。

resetAllMessageCounters() メソッドと resetAllMessageCounterHistories() メソッドを使用して、メッセージカウンターをリセットします。

ブローカー設定および属性の取得
ActiveMQServerControl は、そのすべての属性 (たとえば、ブローカーのバージョンを取得するための getVersion() メソッドなど) を通じて、ブローカーの設定を公開します。
コアブリッジおよび迂回のリスト表示、作成、破棄

デプロイされた Core Bridge をリスト表示し、getBridgeNames()getDivertNames() メソッドをそれぞれ使用して迂回します。

ActiveMQServerControl で、createBridge()destroyBridge() または createDivert()destroyDivert() を使用するブリッジと迂回を使用して、作成または破棄します (ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" またはリソース名 server を使用)。

ブローカーを停止し、現在割り当てられているクライアントでフェイルオーバーを強制する

ActiveMQServerControlforceFailover() を使用します (ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" またはリソース名 server を使用)。

注記

このメソッドは実際にブローカーを停止するため、エラーが発生する可能性が高くなります。正確なエラーは、メソッドの呼び出しに使用した管理サービスによって異なります。

6.4.2. アドレス管理操作

管理 API を使用してアドレスを管理できます。

アドレスの管理には、ObjectName org.apache.activemq.artemis:broker="<broker-name>", component=addresses,address="<address-name>" またはリソース名 address.<address-name>AddressControl クラスを使用します。

addRole() メソッドや removeRole() メソッドを使用して、アドレスのロールやパーミッションを変更します。getRoles() メソッドで、キューに関連付けられたすべてのロールをリスト表示できます。

6.4.3. キュー管理操作

管理 API を使用してキューを管理できます。

コア管理 API はキューを処理します。QueueControl クラスは、キューの管理操作を定義します (ObjectName,org.apache.activemq.artemis:broker="<broker-name>",component=addresses,address="<bound-address>",subcomponent=queues,routing-type="<routing-type>",queue="<queue-name>" またはリソース名 queue.<queue-name> を使用)。

キューの管理操作のほとんどは、単一のメッセージ ID (単一のメッセージを削除するなど) またはフィルター (指定のプロパティーですべてのメッセージを期限切れにするなど) を取ります。

期限切れで、デッドレターアドレスに送信し、メッセージの移動

expireMessages() メソッドを使用して、キューのメッセージを失効させます。期限切れアドレスが定義されている場合、メッセージはこのアドレスに送信されます。それ以外の場合、メッセージは破棄されます。broker.xml 設定ファイルの address-settings 要素で、アドレスまたはアドレス セット (およびそれらのアドレスにバインドされたキュー) の有効期限アドレスを定義できます。例は、デフォルトのブローカー設定について の「デフォルトのメッセージアドレス設定」セクションを参照してください。

sendMessagesToDeadLetterAddress() メソッドを使用して、デッドレターアドレスにメッセージを送信します。このメソッドは、デッドレターアドレスに送信されたメッセージの数を返します。デッドレターアドレスが定義されている場合、メッセージはこのアドレスに送信されます。一致しない場合、メッセージはキューから削除され、破棄されます。broker.xml 設定ファイルの address-settings 要素で、アドレスまたはアドレス セット (およびそれらのアドレスにバインドされたキュー) のデッドレターアドレスを定義できます。例は、デフォルトのブローカー設定について の「デフォルトのメッセージアドレス設定」セクションを参照してください。

moveMessages() メソッドを使用して、あるキューから別のキューにメッセージを移動します。

メッセージのリスト表示と削除

listMessages() メソッドを使用して、あるキューからメッセージをリスト表示します。Map の配列 (各メッセージに対して 1 つの Map) を返します。

removeMessages() メソッドを使用してキューからメッセージを削除します。これは、単一のメッセージ ID バリアントの boolean、またはフィルターバリアントの削除されたメッセージの数を返します。このメソッドは、filter 引数を取り、フィルターされたメッセージのみを削除します。フィルターを空の文字列に設定すると、すべてのメッセージが削除されます。

メッセージのカウント
キューに入っているメッセージの数は、getMessageCount() メソッドで返されます。または、countMessages() は指定のフィルターに一致するキュー内のメッセージの数を返します。
メッセージの優先度の変更
メッセージの優先度は、単一のメッセージ ID バリアントの boolean またはフィルターバリアントの更新されたメッセージの数を返す changeMessagesPriority() メソッドを使用して変更できます。
メッセージカウンター
メッセージカウンターは、listMessageCounter() および listMessageCounterHistory() メソッドを使用して、キューに対してリスト表示することができます (「メッセージカウンターの使用」を参照)。メッセージカウンターは、resetMessageCounter() メソッドを使用して、1 つのキューに対してリセットすることもできます。
キュー属性の取得
QueueControl は、属性を使用してキュー設定を公開します (たとえば、キューのフィルターが作成されている場合はこれを取得するために getFilter() を使用、キューが永続的かどうかを知るためには isDurable() を使用など)。
キューの一時停止および再開
QueueControl は、基礎となるキューを一時停止したり、再開したりすることができます。キューが一時停止すると、メッセージは受信されますが、配信されません。再開すると、キューに格納されたメッセージの配信を開始します (存在する場合)。

6.4.4. リモートリソース管理操作

管理 API を使用してブローカーのリモートリソース (アクセプター、迂回、ブリッジなど) を起動および停止し、ブローカーを完全に停止せずに特定の期間にオフラインにすることができます。

アクセプター
start() またはを使用してアクセプターを開始または停止します。AcceptorControl クラスの stop() メソッド (ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=acceptors,name="<acceptor-name>" またはリソース名 acceptor.<address-name> を使用)。アクセプターパラメーターは、AcceptorControl 属性を使用して取得できます。アクセプターの詳細は、ネットワーク接続: アクセプターとコネクター を参照してください。
Diverts
DivertControlクラスのstart()またはstop()メソッドを使用して、ダイバートを開始または停止します (ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=diverts,name="<divert-name>"またはリソース名divert.<divert-name>を使用)。迂回パラメーターは、DivertControl 属性を使用して取得できます。
ブリッジ
start() (リスピン) を使用して、ブリッジを開始または停止します。BridgeControl クラスの stop() メソッド (ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=bridge,name="<bridge-name>" or the resource name bridge.<bridge-name> を伴う)。ブリッジのパラメーターは、BridgeControl 属性を使用して取得することができます。
ブロードキャストグループ
BroadcastGroupControl クラスの start() または stop() メソッドを使用して、ブロードキャストグループを開始または停止します (ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=broadcast-group,name="<broadcast-group-name>" またはリソース名 broadcastgroup.<broadcast-group-name> を使用)。ブロードキャストグループのパラメーターは、BroadcastGroupControl 属性を使用して取得することができます。詳細は ブローカー検出メソッド を参照してください。
検出グループ
DiscoveryGroupControl クラスの start() または stop() メソッドを使用して、ディスカバリーグループを開始または停止します (ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=discovery-group,name="<discovery-group-name>" またはリソース名 discovery.<discovery-group-name> を使用)。ディスカバリーグループのパラメーターは、DiscoveryGroupControl 属性を使用して取得することができます。詳細は ブローカー検出メソッド を参照してください。
クラスター接続
ClusterConnectionControl クラスの start() または stop() メソッドを使用して、クラスター接続を開始または停止します (h the ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=cluster-connection,name="<cluster-connection-name>" またはリソース名 clusterconnection.<cluster-connection-name> を使用)。クラスター接続パラメーターは、ClusterConnectionControl 属性を使用して取得できます。詳細は、ブローカークラスターの作成を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.