Sun ONE ロゴ      前へ      目次      索引      次へ     
Sun ONE Message Queue 管理者ガイド



第 6 章   ブローカとアプリケーションの管理


この章では、ブローカとブローカが提供するサービスの管理に関するタスクを実行する方法について説明します。これらのタスクの中には、特定のクライアントアプリケーションに依存していないものがあります。これには、次のようなものが含まれます。

  • ブローカの状態の制御。ブローカを停止、再開、シャットダウン、および再起動することができる

  • ブローカのプロパティのクエリおよび更新

  • コネクションサービスのクエリおよび更新

  • リソースの割り当ておよび管理

  • コネクションサービスの管理

その他のブローカのタスクは、特定のアプリケーションのために実行されます。これらのタスクには、物理的な送信先、永続サブスクリプション、トランザクションなどの管理が含まれます。

  • MQ のメッセージは、ブローカの送信先を経由して、受信側またはサブスクライバにルートされる。管理者は、ブローカ上でこれらの送信先を作成する必要がある

  • 永続サブスクリプションを保持するクライアントが、アクティブになっていない場合でも、 MQ によって、永続サブスクライバのリソースの割り当ておよび管理が行われる。MQ のリソースを節約するために、 MQ のコマンドツールを使用して、永続サブスクリプションに関する情報を入手し、永続サブスクリプションを破棄、あるいはそれらのメッセージをパージすることができる

  • MQ のトランザクションおよび分散トランザクションは、ブローカによって記録される。障害が発生した場合、トランザクションを手動でコミット、またはロールバックする必要がある

この章では、コマンドユーティリティ (imqcmd) を使用して、これらのすべてのタスクを実行する方法について説明します。MQ メッセージサーバのグラフィカルインタフェースである管理コンソールを使用して、これらと同じタスクの多くを実行することができます。詳細は、第 4 章「管理コンソールのチュートリアル」を参照してください。



コマンドユーティリティ



コマンドユーティリティを使用すると、ブローカおよびブローカが提供するサービスを管理することができます。この節では、imqcmd コマンドの基本構文、サブコマンドのリスト、imqcmd オプションの概要について説明します。後続の節では、これらのコマンドを使用して、特定のタスクを実行する方法について説明します。


コマンドの構文

imqcmd コマンドの一般的な構文は、次のとおりです。

imqcmd [subcommand argument ] options

または

imqcmd subcommand argument [options ]

-v、-h、および -H オプションを指定する場合、コマンド行で指定するその他のサブコマンドは実行できません。たとえば、次のコマンドを入力すると、バージョン情報が表示されますが、restart サブコマンドは実行されません。

imqcmd restart bkr -v


imqcmd のサブコマンド

コマンドユーティリティ (imqcmd) には、次の表 6-1 に示すようなサブコマンドが含まれています。


表 6-1    imqcmd のサブコマンドと引数 

サブコマンド

説明

create dst
 

送信先を作成する  

commit txn
 

トランザクションをコミットする  

destroy dst
 

送信先を破棄する  

destroy dur
 

永続サブスクリプションを破棄する  

list dst
 

ブローカの送信先を一覧表示する  

list dur
 

トピックの永続サブスクリプションを一覧表示する  

list svc
 

ブローカのサービスを一覧表示する  

list txn
 

ブローカのトランザクションを一覧表示する  

metrics bkr
 

ブローカのメトリックスを表示する  

metrics svc
 

サービスのメトリックスを表示する  

pause bkr
 

ブローカのすべてのサービスを停止する  

pause svc
 

1 つのサービスを停止する  

purge dst
 

送信先を破棄しないで、送信先のすべてのメッセージをパージする  

purge dur
 

永続サブスクリプションを破棄しないで、永続サブスクリプションのすべてのメッセージをパージする  

query bkr
 

ブローカの情報をクエリおよび表示する  

query dst
 

送信先の情報をクエリおよび表示する  

query svc
 

サービスの情報をクエリおよび表示する  

query txn
 

トランザクションの情報をクエリおよび表示する  

reload cls
 

ブローカクラスタ設定の再読み込みを行う  

restart bkr
 

ブローカを再起動する  

resume bkr
 

ブローカのすべてのサービスを再開する  

resume svc
 

1 つのサービスを再開する  

rollback txn
 

トランザクションをロールバックする  

shutdown bkr
 

ブローカをシャットダウンする  

update bkr
 

ブローカの属性を更新する  

update dst
 

送信先の属性を更新する  

update svc
 

サービスの属性を更新する  


imqcmd のオプションの概要

表 6-2 に、imqcmd コマンドのオプションを一覧表示します。これらの使用方法については、後続のタスクごとの節を参照してください。


表 6-2    imqcmd のオプション 

オプション

説明

-b hostName:port
 

ブローカのホスト名とポート番号を指定する。デフォルト値は localhost:7676

ポートだけを指定する場合は -b :7878
ホスト名だけを指定する場合は -b somehost
 

-c "clientID"
 

トピックの永続サブスクライバの ID を指定する。詳細は、「永続サブスクリプションの管理」を参照してください。  

-d topicName
 

トピック名を指定する。list dur サブコマンドや destroy dur サブコマンドと一緒に使用する。「永続サブスクリプションの管理」を参照  

-f
 

ユーザの確認なしで、アクションを実行する  

-h
 

使用方法に関するヘルプを表示する  

-H
 

使用方法に関するヘルプ、属性リスト、および例を表示する  

-int interval
 

imqcmd がブローカのメトリックスを表示する間隔を秒単位で指定する(metrics サブコマンドと一緒に使用する)  

-javahome
 

使用する代替の Java 2 互換のランタイムを指定する (デフォルトでは、製品にバンドルされているランタイムが使用される)  

-m metricType
 

表示するメトリックス情報のタイプを指定する。タイプには、次のどれかを指定する

ttl    ブローカの送受信メッセージの総数 (デフォルト)

rts    ttl と同じ情報を提供するが、1 秒あたりのメッセージ数を指定する

cxn    コネクション、仮想メモリヒープ、スレッド

このオプションは、metrics bkr サブコマンド、または metrics svc サブコマンドと一緒に使用する。次のコマンドでは、デフォルトブローカの cxn タイプのメトリックスが 5 秒ごとに表示される

imqcmd metrics bkr -m cxn -int 5  

-n targetName
 

ターゲット名を指定する。これはサブコマンドに応じて、物理的な送信先、サービス、トランザクション ID、または永続サブスクリプションの名前になる。送信先の管理での使用方法については、「送信先の管理」を参照  

-o attribute=value
 

属性の値を指定する。これはサブコマンドの引数に応じて、ブローカの属性 (「ブローカのプロパティのクエリと更新」を参照)、サービス (「コネクションサービスの管理」を参照)、または送信先 (「送信先の管理」を参照) になる  

-secure
 

ssladmin コネクションサービス (「手順 4. SSL ベースのクライアントを設定および実行する」「コマンドユーティリティ (imqcmd)」を参照) を使用して、セキュリティ保護されたブローカへの管理コネクションを指定する  

-p password
 

管理者パスワードを指定する。この値を省略すると、管理者名の入力を要求される  

-s
 

サイレントモード。出力が表示されない  

-t destinationType
 

t (トピック) または q (キュー) のどちらかの送信先のタイプを指定する  

-tmp
 

一時送信先を表示する  

-u name
 

管理者名を指定する。この値を省略すると、管理者名の入力を要求される  

-v
 

バージョン情報を表示する  

imqcmd のサブコマンドを実行するたびに、ホスト名とポート番号 (-b)、ユーザ名 (-u)、パスワード (-p)、および安全なコネクション (-secure) のオプションを指定する必要があります。ホスト名とポート番号を指定しない場合、デフォルト値が使用されます。ユーザ名とパスワードの情報を指定しないと、これらの情報の入力を要求されます。-secure オプションを指定しない場合は、コネクションがセキュリティ保護されません。


imqcmd を使用するための前提条件

imqcmd コマンドを使用してブローカを管理する場合、次のタスクを実行する必要があります。

  • imqbrokerd コマンドを使用して、ブローカを起動する

    コマンドユーティリティは、すでに起動しているブローカを管理する場合にのみ使用できる。コマンドユーティリティでは、ブローカを起動することはできない。「ブローカの起動」を参照

  • ブローカをポート 7676 のローカルホストで実行しない場合、-b オプションを使用して、ターゲットブローカを指定する

  • 適切な管理者名とパスワードを指定する。この値を指定しないと、値の入力を要求される。 imqcmd を使用する操作はすべてユーザリポジトリに照らし合わされて認証される

    MQ をインストールすると、デフォルトの単層ファイルのユーザリポジトリがインストールされます。このファイルには、IMQ_HOME/etc/passwd (Solaris では /etc/imq/passwd ) という名前が付けられています。リポジトリには、管理ユーザ用とゲストユーザ用の 2 つのエントリがデフォルトで用意されています。これらのエントリを使用すれば、追加作業を行わずにブローカに接続することができます。たとえば、MQ をテストするだけなら、デフォルトのユーザ名とパスワード (admin/admin) を使用して、ユーティリティを実行できます。

    運用システムをセットアップする場合は、ユーザを認証および認可するための追加作業を行う必要があります。また、ユーザリポジトリについて、既存の LDAP ディレクトリサーバを使用するオプションも用意されています。詳細は、「ユーザの認証」を参照してください。




次のコマンドでは、ポート 7676 の localhost で実行しているブローカのプロパティが一覧表示されます。

imqcmd query bkr -u admin -p admin

次のコマンドでは、ユーザ名が alladin で、ユーザパスワードが abracadabra のポート 1564 のmyserver で実行しているブローカのプロパティが一覧表示されます。

imqcmd query bkr -b myserver:1564 -u alladin -p abracadabra

ユーザ名の alladinadmin グループに割り当てられている場合、指定したブローカに、admin クライアントとして接続されます。



ブローカの状態の制御



ブローカの起動後に、次の imqcmd のサブコマンドを使用して、ブローカの状態を制御できます。

  • ブローカの停止

    ブローカを停止すると、ブローカのサービススレッドが中断されるため、ブローカはポートでの待機をやめます。その後で、ブローカへのメッセージフローを調整するのに必要な管理タスクを実行できます。たとえば、特定の送信先にメッセージが集中している場合、ブローカを停止して、メッセージソースの追跡、送信先のサイズの制限、送信先の破棄など、問題を解決するためのアクションを実行できます。

    次のコマンドでは、ポート 1588 の myhost で実行しているブローカが停止されます。

    imqcmd pause bkr -b myhost:1588

  • ブローカの再開

    ブローカを再開すると、ブローカのサービススレッドが再び有効になり、ブローカはポートでの待機を再開します。次のコマンドでは、ポート 7676 の localhost で実行していたブローカが再開されます。

    imqcmd resume bkr

  • ブローカのシャットダウン

    ブローカをシャットダウンすると、ブローカプロセスが終了します。これは正規の終了であるため、ブローカは新しいコネクションやメッセージを受け入れるのをやめて、既存のメッセージの配信を完了し、ブローカプロセスを終了します。次のコマンドでは、ポート 1572 の ctrlsrv で実行していたブローカがシャットダウンされます。

    imqcmd shutdown bkr -b ctrlsrv:1572

  • ブローカの再起動

    ブローカをシャットダウンして、再起動します。次のコマンドでは、ポート 7676 の localhost で実行していたブローカが再起動されます。

    imqcmd restart bkr

表 6-3 は、ブローカを制御するのに使用する imqcmd のサブコマンドについてまとめたものです。ポート 7676 の localhost で実行するブローカを対象にしない場合は、ブローカのホスト名とポート番号を指定する必要があります。


表 6-3    ブローカを制御する imqcmd のサブコマンド 

サブコマンド

説明

pause bkr [-b hostName:port]
 

デフォルトのブローカ、または指定したホストとポートのブローカを停止する  

resume bkr [-b hostName:port]
 

デフォルトのブローカ、または指定したホストとポートのブローカを再開する  

shutdown bkr [-b hostName:port]
 

デフォルトのブローカ、または指定したホストとポートのブローカをシャットダウンする  

restart bkr [-b hostName:port]
 

デフォルトのブローカ、または指定したホストとポートのブローカをシャットダウンして、再起動する

このコマンドは、ブローカを最初に起動したときに指定したオプションを使用して、ブローカを再起動する。別のオプションを有効にする必要がある場合、ブローカをシャットダウンしてから、必要なオプションを指定して、ブローカを起動し直す必要がある  



ブローカのプロパティのクエリと更新



Command ユーティリティには、ブローカに関する情報を入手したり、ブローカのプロパティを更新したりすることができるサブコマンドが含まれています。表 6-4 にこれらのサブコマンドを一覧表示します。


表 6-4    情報の入手およびブローカの更新を行う imqcmd のサブコマンド

サブコマンドの構文

説明

query bkr -b hostName:port
 

デフォルトのブローカ、または指定したホストとポートのブローカの現在のプロパティの設定を一覧表示する。また、特定のブローカに接続している実行中のブローカ (マルチブローカクラスタ内の) のリストも表示される  

reload cls
 

クラスタ内のすべてのブローカで、imq.cluster.brokerlist プロパティの再読み込みとクラスタ情報の更新を実行する。詳細は、「クラスタへのブローカの追加」を参照  

update bkr [-b hostName:port]
-o attr=val

 

デフォルトのブローカ、または指定したホストとポートのブローカに対して、指定した属性を変更する  

metrics bkr [-b hostName:port]
[-m metricType]
[-int interval]

 

デフォルトのブローカ、または指定したホストとポートのブローカに対して、ブローカのメトリックスを表示する

表示するメトリックスのタイプを指定するには、-m オプションを使用する

ttl  ブローカの送受信メッセージの総数 (デフォルト)

rts  ttl と同じ情報を提供するが、1 秒あたりのメッセージ数を指定する

cxn  コネクション、仮想メモリヒープ、スレッド

メトリックスを表示する間隔を秒単位で指定するには、-int オプションを使用する。デフォルトは 5 秒  

ポート 7676 の localhost で実行するブローカを対象にしない場合、表 6-4 に示されるサブコマンドを使用するときに、ブローカのホスト名とポート番号を指定する必要があります。


ブローカのクエリ

シングルブローカに関する情報のクエリと表示を行うには、query サブコマンドを使用します。たとえば、次のように指定します。

imqcmd query bkr

このサブコマンドでは、次のような情報が出力されます。


%imqcmd query bkr

Querying the broker specified by:

-------------------------
Host         Primary Port
-------------------------
localhost    7676

Auto Create Queues                     true
Auto Create Topics                     true
Auto Created Queue Delivery Policy     Round Robin
Cluster Broker List (active)           myhost/192.18.116.221:7676
Cluster Broker List (configured)       
Cluster Master Broker                  
Cluster URL                            
Current Number of Messages in System   0
Current Size of Messages in System     0
Instance Name                          imqbroker
Log Level                              INFO
Log Rollover Interval (seconds)        604800
Log Rollover Size (bytes)              0 (unlimited)
Max Message Size                       70m
Max Number of Messages in System       0 (unlimited)
Max Size of Messages in System         0 (unlimited)
Primary Port                           7676
Version                                3.0

Successfully queried the broker.


ブローカの更新

表 6-5 に示すブローカのプロパティを更新するには、update サブコマンドを使用します。ブローカの更新情報は、ブローカのインスタンス設定ファイルに自動的に書き込まれます。


表 6-5    ブローカのプロパティ 

プロパティ

説明

imq.autocreate.queue
 

ブローカでキューの送信先の自動作成を許可するかどうかを指定する。デフォルトは True  

imq.autocreate.topic
 

ブローカでトピックの送信先の自動作成を許可するかどうかを指定する。デフォルトは True  

imq.queue.deliverypolicy
 

自動作成されたキューのデフォルトの配信ポリシーを指定する。指定できる値は s (シングル)、r (ラウンドロビン)、または f (フェイルオーバー)。デフォルトは s  

imq.cluster.url
 

クラスタ設定ファイルの場所を指定する。詳細は、「クラスタ設定プロパティ」を参照  

imq.log.level
 

ログレベルを指定する。指定できる値は NONEERRORWARNINGINFO 。デフォルトは INFO  

imq.log.file.rolloversecs
 

ログファイルがロールオーバーされるまでの有効期間 (秒単位)。値を 0 に設定した場合、ファイルの有効期間に基づいたロールオーバーは行われない。デフォルトは 604800 (7 日間)  

imq.log.file.rolloverbytes
 

ログファイルがロールオーバーされるまでのファイルの最大サイズを指定する。値を 0 に設定した場合、ファイルのサイズに基づいたロールオーバーは行われない。デフォルトは 0  

imq.message.max_size
 

1 つのメッセージの最大サイズをバイト単位で指定する。デフォルトは 70m  

imq.system.max_count
 

メモリおよびディスク内のメッセージの最大数を指定する。値を 0 に設定した場合、無制限になる。デフォルトは 0  

imq.system.max_size
 

メモリおよびディスク内のメッセージの最大合計サイズを指定する。値を 0 に設定した場合、無制限になる。デフォルトは 0  

imq.portmapper.port
 

ポートマッパーポートの数を指定する。デフォルトは 7676  

たとえば、次のコマンドでは、キューのデフォルト配信ポリシーがシングルからラウンドロビンに変更されます。

imqcmd update bkr -o "imq.queue.deliverypolicy=r"



コネクションサービスの管理

Command ユーティリティには、次のタスクを実行できるさまざまなサブコマンドが含まれています。

  • 使用可能なコネクションサービスを一覧表示する

  • 特定のサービスに関する情報を表示する

  • サービスの属性を更新する

  • サービスを停止および再開する

MQ のコネクションサービスの概要については、「コネクションサービス」を参照してください。

表 6-6 に、コネクションサービスを制御する imqcmd のサブコマンドを一覧表示します。ホスト名、またはポートを指定しない場合は、localhost7676 を使用するものと仮定します。


表 6-6    コネクションサービスを管理する imqcmd のサブコマンド 

サブコマンドの構文

説明

list svc [-b hostName:port]
 

デフォルトのブローカ、または指定したホストとポートのブローカのすべてのコネクションサービスを一覧表示する  

metrics svc -n serviceName
[-b hostName:port]
[-m metricType] [-int interval]

 

デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスのメトリックスを一覧表示する

表示するメトリックスのタイプを指定するには、-m オプションを使用する

ttl  ブローカの送受信メッセージの総数 (デフォルト)

rts  ttl と同じ情報を提供するが、1 秒あたりのメッセージ数を指定する

cxn  コネクション、仮想メモリヒープ、スレッド

メトリックスを表示する間隔を秒単位で指定するには、-int オプションを使用する。デフォルトは 5 秒  

query svc -n serviceName
[-b hostName:port]

 

デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスに関する情報を一覧表示する  

pause svc -n serviceName
[-b hostName:port]

 

デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスを停止する。admin サービスは停止できない  

resume svc -n serviceName
[-b hostName:port]

 

デフォルトのブローカ、または指定したホストとポートのブローカで実行していた特定のサービスを再開する  

update svc -n serviceName
[-b hostName:port]
-o attr=val

 

デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスの特定の属性を更新する。サービスの属性については、表 6-8 を参照  

ブローカは、アプリケーションクライアントと管理クライアントの両方の通信をサポートしています。MQ ブローカで現在使用できるサービスを、表 6-7 に示します。「サービス名」列の値は、-n オプションでサービス名を指定するのに使用する値になります。表が示すように、各サービスは使用するサービスタイプ (NORMAL または ADMIN) と基礎となるトランスポートレイヤによって指定されます。


表 6-7    ブローカでサポートされているコネクションサービス 

サービス名

サービスタイプ

プロトコルタイプ

jms  

NORMAL (JMS メッセージ配信)  

tcp  

ssljms  

NORMAL (JMS メッセージ配信)  

tls (SSL ベースセキュリティ)  

httpjms  

NORMAL (JMS メッセージ配信)  

http  

httpsjms  

NORMAL (JMS メッセージ配信)  

https (SSL ベースセキュリティ)  

admin  

ADMIN  

tcp  

ssladmin  

ADMIN  

tls (SSL ベースセキュリティ)  


コネクションサービスの一覧表示

ブローカの使用可能なコネクションサービスを一覧表示するには、次のようなコマンドを使用します。

imqcmd list svc [-b hostName:portNumber]

たとえば、次のコマンドでは、ポート 6565 の MyServer ホストで実行しているブローカで使用可能なサービスが一覧表示されます。

imqcmd list svc -b MyServer:6565

次のコマンドでは、ポート 7676 の localhost で実行しているブローカのすべてのサービスが一覧表示されます。

imqcmd list svc

このコマンドでは、次のような情報が出力されます。


Listing all the services on the broker specified by:

Host                 Primary Port
localhost            7676

Service Name     Port Number       Service State
admin            33984 (dynamic)   RUNNING
httpjms                            UNKNOWN
httpsjms         -                 UNKNOWN
jms              33983 (dynamic)   RUNNING
ssladmin         dynamic           UNKNOWN
ssljms           dynamic           UNKNOWN

Successfully listed services.


サービスのプロパティのクエリと更新

シングルサービスに関する情報のクエリと表示を行うには、query サブコマンドを使用します。たとえば、次のように指定します。

imqcmd query svc -n jms

このサブコマンドでは、次のような情報が出力されます。


Querying the service where:

Service Name
jms

On the broker specified by:

Host                         Primary Port
localhost                    7676


Current Number of Allocated Threads    120
Current Number of Connections          20
Max Number of Threads                  1000
Min Number of Threads                  50
Port Number                            42019 (dynamic)
Service Name                           jms
Service State                          RUNNING

Successfully queried the service.

表 6-8 に示す 1 つ以上のサービスの属性値を変更するには、update サブコマンドを使用します。


表 6-8    コネクションサービスの属性

属性

説明

port
 

更新するサービスに割り当てられるポート (httpjms または httpsjms には適用しない)  

minThreads
 

サービスに割り当てられるスレッドの最小数  

maxThreads
 

サービスに割り当てられるスレッドの最大数  

次のコマンドでは、jms サービスに割り当てられたスレッドの最小数が 20 に変更されます。

imqcmd update svc -n jms -o "minThreads=20"


サービスの停止および再開

admin サービス (停止できない) 以外のサービスを停止するには、次のようなコマンドを使用します。

imqcmd pause svc -n serviceName

サービスを再開するには、次のようなコマンドを使用します。

imqcmd resume svc -n serviceName



送信先の管理

MQ のメッセージはすべて、特定のブローカで作成された送信先、キュー、およびトピックを経由して、コンシューマクライアントにルートされます。管理者は、ブローカのこれらの送信先を管理する必要があります。送信先の管理には、コマンドユーティリティを使用して送信先の作成と破棄、送信先の一覧表示、送信先に関する情報の表示、およびメッセージのパージを行うことが含まれます。送信先の概要については、「物理的な送信先」を参照してください。

表 6-9 は、imqcmd の送信先のサブコマンドについてまとめたものです。デフォルトのブローカ (localhost:7676) を使用しない場合、ブローカのホスト名とポート番号を指定する必要があります。


表 6-9     送信先を管理する imqcmd のサブコマンド 

サブコマンド

説明

list dst [-tmp]
 

すべての送信先を一覧表示する。同様に、一時送信先についても一覧表示するオプションがある (「一時送信先」を参照)  

create dst -t type
-n name [-o att=val]
[-o att=val1]...]

 

特定のタイプの送信先を指定した名前と属性で作成する。送信先名には、英数字 (空白文字は含まない) だけを使用する必要がある。送信先名は、英字や 「 _ 」 で開始できる  

destroy dst -t type
-n name

 

特定のタイプと名前の送信先を破棄する  

purge dst -t type -n name
 

特定のタイプと名前の送信先のメッセージをパージする  

query dst -t type -n name
 

特定のタイプと名前の送信先に関する情報を一覧表示する  

update dst -t type -n name
-o att=val[[-o att=val1]...]

 

特定の送信先で特定の属性値を更新する

属性名は、表 6-10 に示す属性のどれかになる  


送信先の作成

送信先を作成する場合、タイプ (トピックまたはキュー) と送信先の属性値 ( 必要に応じて ) を指定する必要があります。これらの属性のデフォルト値は、ブローカの設定ファイル (「設定ファイル」を参照) に設定されます。

送信先を破棄すると、その送信先のすべてのメッセージがパージされ、ブローカからその送信先がなくなるため、操作を元に戻すことはできません。

表 6-10 に送信先を作成する際、各タイプの送信先に設定できる属性を示します。


表 6-10    送信先の属性 

送信先タイプ

属性

デフォルト値

説明

キュー  

queueDeliveryPolicy
 
Single
 

メッセージを転送するのに使用するアルゴリズムを指定する

値は、次のどれかになる

f = フェイルオーバー

r = ラウンドロビン

s = シングル  

キュー  

maxTotalMsgBytes
 

0 (無制限)  

キューで許可されるメッセージの最大合計サイズ (バイト単位)  

キュー  

maxNumMsgs
 

0 (無制限)  

キューで許可されるメッセージの最大数  

キュー  

maxBytesPerMsg
 

0 (無制限)  

キューで許可されるシングルメッセージの最大サイズ  

トピック  

maxBytesPerMsg
 

0 (無制限)  

トピックに送信されるシングルメッセージの最大サイズ  

  • キューの送信先を作成するには、次のようなコマンドを入力する

    imqcmd create dst -n myQueue -t q -o "queueDeliveryPolicy=f"

    送信先名は、有効な Java 識別子にする必要がある

  • トピックの送信先を作成するには、次のようなコマンドを入力する

    imqcmd create dst -n myTopic -t t -o "maxBytesPerMsg=5000"


送信先に関する情報の入手

送信先の現在の属性値に関する情報を入手するには、次のようなコマンドを使用します。

imqcmd query dst -t q -n XQueue

さらに、update imqcmd サブコマンドを使用して、1 つ以上の属性の値を変更することができます。

ポート 4545 の myHost などのように、特定のブローカの送信先をすべて一覧表示するには、次のようなコマンドを使用します。

imqcmd list dst -b myHost:4545

list コマンドでは、オプションで一時送信先 (-tmp オプションを使用) を指定することが可能です。一時送信先とは、ほかのクライアンに送信したメッセージに対する応答を受け取るための送信先が必要なクライアントアプリケーションによって作成される送信先のことです (「一時送信先」を参照)。これらの送信先は、アクティブなメッセージコンシューマが存在しない場合に、クライアントアプリケーションが作成するAPI コールによってのみ破棄されます。


送信先の更新

送信先の属性を変更するには、update dst サブコマンドと -o オプションを使用して、更新する属性を指定します。複数の属性を更新する必要がある場合、-o オプションを使用できます。たとえば、次のコマンドでは maxBytesPerMsg 属性が 1000 に、MaxNumMsgs 属性が 2000 にそれぞれ変更されます。

imqcmd update dst -t q -n myQueue -o "maxBytesPerMsg=1000"
             -o maxNumMsgs=2000

更新が可能な属性については、表 6-10 を参照してください。

送信先のタイプやキューのキュー配信ポリシーを更新する場合、update dst サブコマンドは使用できません。


送信先のパージ

送信先のキューに現在入っているメッセージは、すべてパージすることが可能です。送信先をパージすると、物理的な送信先のキューに入っているすべてのメッセージが削除されます。送信先に累積されたメッセージによって、システムのリソースが大幅に消費される場合に、これらのメッセージをパージすることができます。これは、登録済みのコンシューマクライアントがキューに入っていない場合やキューが多数のメッセージを受信する場合に発生する可能性があります。また、トピックの永続サブスクライバが、アクティブにならない場合にも発生する可能性があります。どちらの場合も、メッセージが必要以上に保持されます。

送信先のメッセージをパージするには、次のようなコマンドを使用します。

imqcmd purge dst -n myQueue -t q

imqcmd purge dst -n myTopic -t t

ブローカをシャットダウンした後、再起動するときに、古いメッセージを配信する必要がない場合は、imqbrokerd コマンドの reset サブコマンドを使用して、古いメッセージをパージします。たとえば、次のとおりです。

imqbrokerd -reset messages

これで、ブローカを再起動すると、送信先のパージに関する問題が解消されます。


送信先の破棄

送信先を破棄するには、次のようなコマンドを使用します。

imqcmd destroy dst -t q -n myQueue



永続サブスクリプションの管理

ブローカの永続サブスクリプションを管理するには、imqcmd のサブコマンドを使用する必要があります。永続サブスクリプションとは、クライアントによって、永続的であると登録されたトピックのサブスクリプションのことです。このサブスクリプションには固有の識別情報があり、コンシューマがアクティブになっていないときでも、サブスクリプションのメッセージを保持するブローカが必要となります。通常、ブローカはメッセージの有効期限が切れたときだけ、保持していた永続サブスクライバのメッセージを削除します。

表 6-12 は、imqcmd の永続サブスクリプションのサブコマンドについてまとめたものです。デフォルトのブローカ (localhost:7676) を使用しない場合、ブローカのホスト名とポート番号を指定する必要があります。


表 6-11    永続サブスクリプションを管理するimqcmd のサブコマンド 

サブコマンド

説明

list dur -d destination
 

特定の送信先の永続サブスクリプションをすべて一覧表示する  

destroy dur -n name
-c client_id

 

特定のクライアント識別子の特定の永続サブスクリプションを破棄する (「クライアント識別子」を参照)  

purge dur -n name
-c client_id

 

特定のクライアント識別子のメッセージをすべてパージする (「クライアント識別子」を参照)  

たとえば、次のコマンドでは、トピック SPQuotes の永続サブスクリプションがすべて一覧表示されます。

imqcmd list dur -d SPQuotes

トピックの永続サブスクリプションごとに、list サブコマンドは、永続サブスクリプションの名前、ユーザのクライアント ID、このトピックのキューに入っているメッセージの数、および永続サブスクリプションの状態 (アクティブ / 非アクティブ) を返します。次に例を示します。


Listing all the durable subscriptions on the topic myTopic
on the broker specified by:
-------------------------
Host         Primary Port
-------------------------
localhost    7676

Name        Client ID       Number of   Durable Sub
                            Messages      State
----------------------------------------------------------------
myDurable   myClientID       1           INACTIVE

Successfully listed durable subscriptions.

list コマンドから返される情報を使用して、破棄する必要がある永続サブスクリプションやメッセージをパージする必要がある永続サブスクリプションを識別することができます。サブスクリプションを識別するには、サブスクリプションの名前とクライアント ID を使用します。たとえば、次のように指定します。

imqcmd destroy dur -n myDurable -c myClientID



トランザクションの管理

クライアントアプリケーションによって開始されたトランザクションはすべてブローカによって記録されます。これらは、XA リソースマネージャによって管理される MQ の単純なトランザクション、または分散トランザクションです (「ローカルトランザクション」を参照)。トランザクションにはすべて、MQ トランザクション ID が付けられています。これは、ブローカのトランザクションを一意に識別する ための64 ビットの数字です。また、分散トランザクションには、分散トランザクションマネージャによって割り当てられる最大 128 バイトの分散トランザクション ID (XID) が付けられます。MQ は、MQ トランザクション ID と XID の関連付けを保持します。

分散トランザクションの場合、障害が発生すると、トランザクションがコミットされずに PREPARED 状態のままになる可能性があります。このため、管理者は監視を行い、PREPARED 状態のトランザクションをロールバックするか、またはコミットする必要があります。

表 6-12 は、imqcmd のトランザクションのサブコマンドについてまとめたものです。デフォルトのブローカ (localhost:7676) を使用しない場合、ブローカのホスト名とポート番号を指定する必要があります。


表 6-12    トランザクションを管理する imqcmd のサブコマンド 

サブコマンド

説明

list txn
 

ブローカによって記録されたトランザクションがすべて一覧表示される  

query txn -n transaction_id
 

特定のトランザクションに関する情報が表示される  

commit txn -n transaction_id
 

特定のトランザクションをコミットする  

rollback txn -n transaction_id
 

特定のトランザクションをロールバックする  

たとえば、次のコマンドでは、ブローカのすべてのトランザクションが一覧表示されます。

imqcmd list txn

トランザクションごとに、list サブコマンドは、トランザクション ID、状態、ユーザ名、メッセージまたは通知の数、および作成時間を返します。次に例を示します。


Listing all the transactions on the broker specified by:
-------------------------
Host         Primary Port
-------------------------
localhost    7676

---------------------------------------------------------------
Transaction ID  State    User name   # Msgs/   Creation time
                                     # Acks
---------------------------------------------------------------

64248349708800  PREPARED guest      4/0      1/30/02 10:08:31 AM
64248371287808  PREPARED guest      0/4      1/30/02 10:09:55 AM

Successfully listed transactions.

このコマンドを使用すると、ブローカ内のローカルと分散の両方のトランザクションがすべて表示されます。PREPARED 状態のトランザクションだけをコミット、またはロールバックすることができます。これを実行するのは、障害の発生でトランザクションが PREPARED 状態になり、分散トランザクションマネージャによってコミットされるプロセスになっていないことがわかっている場合だけです。

たとえば、ブローカの自動ロールバックプロパティを「false」に設定した場合 (表 2-4 を参照)、ブローカの起動時に、PREPARED 状態のトランザクションを手動でコミット、またはロールバックする必要があります。

list サブコマンドは、トランザクションでプロデュースされたメッセージの数とトランザクションで通知されたメッセージの数 (#Msgs/#Acks) も表示します。トランザクションがコミットされるまで、これらのメッセージは配信されず、通知は処理されません。

query サブコマンドを使用すると、 list サブコマンドで表示される情報のほかに、クライアント ID、コネクション識別子、分散トランザクション ID (XID) などの追加情報が表示されます。たとえば、次のように指定します。

imqcmd query txn -n 64248349708800

このサブコマンドによって、次のような情報が出力されます。


Querying the transaction where:
-------------------------
Transaction ID
-------------------------
64248349708800

On the broker specified by:

-------------------------
Host         Primary Port
-------------------------
localhost    7676


Client ID
Connection                 guest@192.18.116.219:62209->jms:62195
Creation time              1/30/02 10:08:31 AM
Number of acknowledgements 0
Number of messages         4
State                      PREPARED
Transaction ID             64248349708800
User name                  guest
XID
6469706F6C7369646577696E6465723130313234313431313030373230

Successfully queried the transaction.

分散トランザクションをコミット、またはロールバックするには、commit サブコマンドと rollback サブコマンドを使用します。前述したように、PREPARED 状態のトランザクションだけをコミット、またはロールバックできます。たとえば、次のように指定します。

imqcmd commit txn -n 64248349708800

ブローカの起動時に、PREPARED 状態のトランザクションが自動的にロールバックされるように、ブローカを設定することも可能です。詳細は、表 2-4imq.transaction.autorollback プロパティを参照してください。


前へ      目次      索引      次へ     
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.

最終更新日 2002 年 6 月 19 日