4.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
は、基礎となるキューを一時停止したり、再開したりすることができます。キューが一時停止すると、メッセージは受信されますが、配信されません。再開すると、キューに格納されたメッセージの配信を開始します (存在する場合)。