Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java System Message Queue 3 2005Q4 管理ガイド 

第 5 章
ブローカの管理

この章では、imqcmd ユーティリティーを使用して、ブローカおよびそのサービスを管理する方法について説明します。この章では、次の節について説明します。

この章ではブローカの管理に関連したすべてのトピックは扱いません。その他のトピックは、次の章で個別に扱っています。


前提条件

ブローカの管理には、imqcmd および imqusermgr コマンド行ユーティリティーを使用します。ブローカを管理する前に、次の作業が必要です。


imqcmd ユーティリティーの使用

imqcmd ユーティリティーを使用すると、ブローカとブローカのサービスを管理できます。

imqcmd コマンドの構文、サブコマンド、オプションの詳細は、第 13 章「コマンド行のリファレンス」を参照してください。物理的送信先の管理の詳細は、第 15 章「物理的送信先のプロパティーのリファレンス」で個別に扱っています。

ヘルプの表示

imqcmd ユーティリティーでヘルプを表示するには、-h オプションまたは -H オプションを使用し、サブコマンドは使用しません。特定のサブコマンドのヘルプは表示されません。

たとえば、次のコマンドは imqcmd に関するヘルプを表示します。

サブコマンドまたはその他のオプションに加えて、-h オプションまたは -H オプションを指定してコマンド行を入力した場合、imqcmd ユーティリティーは -h オプションまたは -H オプションのみを処理します。コマンド行のほかのすべての項目は無視されます。

製品のバージョンの表示

Message Queue の製品のバージョンを表示するには、-v オプションを使用します。たとえば、次のように指定します。

サブコマンドまたはその他のオプションに加えて、-v オプションを指定してコマンド行を入力した場合、imqcmd ユーティリティーは -v オプションのみを処理します。コマンド行のほかのすべての項目は無視されます。

ユーザー名とパスワードを指定する

それぞれの imqcmd サブコマンドはユーザーリポジトリに対して認証されるため、ユーザー名とパスワードが必要になります。ただし、ヘルプを表示するための -h または -H オプションを使用するコマンド、および製品のバージョンを表示するための -v オプションを使用するコマンドには必要ありません。

ユーザー名を指定する

管理ユーザー名を指定する場合は、-u オプションを使用します。ユーザー名を省略すると、コマンドから入力が要求されます。たとえば、次のコマンドはデフォルトのブローカに関する情報を表示します。

この章の例を読みやすくするために、デフォルトのユーザー名 admin-u オプションの引数として示しています。本稼動環境では、カスタムユーザー名を使用します。

パスワードを指定する

パスワードは次のいずれかの方法で指定します。

これまでのバージョンの Message Queue では、-p オプションを使用して imqcmd コマンド行にパスワードを指定できました。このオプションは異論が多く、今後のバージョンでは削除される予定です。

ブローカ名とポートを指定する

imqcmd のデフォルトブローカは、ローカルホストで実行中のブローカであり、デフォルトポートは 7676 です。

リモートホストで実行中のブローカまたはデフォルト以外のポートで待機中のブローカ、あるいはその両方にコマンドを発行する場合、-b オプションを使用してブローカのホストとポートを指定する必要があります。

この節の例は、imqcmd の使い方を表しています。

最初の例では、localhost のポート 7676 で実行中のブローカのプロパティーを一覧表示しているため、-b オプションは不要です。このコマンドはデフォルトの管理ユーザー名 (admin) を使用してパスワードを省略しています。したがってコマンドで入力が要求されています。

次の例では、ホスト myserver のポート 1564 で実行中のブローカのプロパティーを一覧表示しています。ユーザー名は aladdin です。このコマンドが機能するためには、ユーザーリポジトリを更新して、aladdin admin グループに追加する必要がある場合があります。

次の例では、localhost のポート 7676 で実行中のブローカのプロパティーを一覧表示しています。このコマンドの最初のタイムアウトは 20 秒に設定され、タイムアウト後の再試行回数が 7 回に設定されています。ユーザーのパスワードは、コマンドを呼び出したときに現在のディレクトリにある myPassfile と呼ばれるパスワードファイル内に格納されています。

ブローカとの安全な接続を確立するために、次の例では -secure オプションを指定しています。ssladmin サービスが設定および起動されていれば、imqcmd-secure オプションを指定したときに ssladmin サービスを使用します。


ブローカ情報の表示

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

次に示すのは、query bkr サブコマンドの構文です。

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

たとえば、次のように指定します。

パスワードの入力を要求した後、コマンドは次のような出力を生成します。

Version                                              3.6

Instance Name                                        imqbroker

Primary Port                                         7676

                                                   

Current Number of Messages in System                 0

Current Total Message Bytes in System                0

Current Number of Messages in Dead Message Queue     0

Current Total Message Bytes in Dead Message Queue    0

Log Dead Messages                                    true

Truncate Message Body in Dead Message Queue          false

                                                   

Max Number of Messages in System                     unlimited (-1)

Max Total Message Bytes in System                    unlimited (-1)

Max Message Size                                     70m

                                                   

Auto Create Queues                                   true

Auto Create Topics                                   true

Auto Created Queue Max Number of Active Consumers    1

Auto Created Queue Max Number of Backup Consumers    0

                                                   

Cluster Broker List (active)                         

Cluster Broker List (configured)                     

Cluster Master Broker                                

Cluster URL                                          

                                                   

Log Level                                            INFO

Log Rollover Interval (seconds)                      604800

Log Rollover Size (bytes)                            unlimited (-1)


ブローカのプロパティーの更新

次のブローカのプロパティーを更新する場合は、update bkr サブコマンドを使用します。

次に示すのは、update bkr サブコマンドの構文です。

このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカに対して、指定した属性を変更します。たとえば、次のコマンドはキュー送信先の自動作成を無効にします。

プロパティーは、第 14 章「ブローカのプロパティーのリファレンス」で説明しています。


ブローカの停止および再開

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

ブローカを停止する

ブローカを停止すると、ブローカの接続サービススレッドが中断されるため、ブローカは接続ポートでの待機をやめます。その結果、ブローカはそれ以上、新しい接続の受け入れ、メッセージの受信、メッセージのディスパッチは行いません。

ただし、ブローカを停止しても admin 接続サービスは中断されないため、ブローカへのメッセージを制限するために必要な管理タスクは実行できます。ブローカを停止しても、cluster 接続サービスは継続されます。ただし、クラスタ内のメッセージ配信は、クラスタ内のブローカによって実行される配信機能によって異なります。そのため、クラスタ内のブローカを停止すると、一部のメッセージトラフィックが遅くなる可能性があります。

次に示すのは、pause bkr サブコマンドの構文です。

このコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカを停止します。

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

個々の接続サービス、および個々の物理的送信先も停止できます。詳細は、「接続サービスの停止および再開」「物理的送信先の停止と再開」を参照してください。

ブローカを再開する

ブローカを再開すると、ブローカのサービススレッドが再び有効になり、ブローカはポートでの待機を再開します。

次に示すのは、resume bkr サブコマンドの構文です。

このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカを再開します。

次のコマンドでは、localhost のポート 7676 で実行していたブローカが再開されます。


ブローカのシャットダウンと再起動

ブローカをシャットダウンすると、正常にブローカプロセスを終了することができます。ブローカは新しい接続やメッセージを受け入れるのをやめて、既存のメッセージの配信を完了し、ブローカプロセスを終了します。

次に示すのは、shutdown bkr サブコマンドの構文です。

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

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

restart bkr サブコマンドを使用して、ブローカをシャットダウンし、再起動します。次に示すのは、restart bkr サブコマンドの構文です。

このサブコマンドは、最初にブローカを起動したときに指定されたオプションを使用して、デフォルトのブローカ、または指定されたホストとポートのブローカをシャットダウンし、再起動します。別のオプションを選択する場合は、必要なオプションを指定して、ブローカをシャットダウンしてから再起動します。


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

ブローカに関するメトリックス情報を表示するには、metrics bkr サブコマンドを使用します。

次に示すのは、metrics bkr サブコマンドの構文です。

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

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

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

出力で表示するサンプル数を指定するには、-msp オプションを使用します。デフォルトは無制限です (無限)。

たとえば、ブローカに入力するメッセージフローとブローカから出力されるメッセージのフローレートを10 秒間隔で取得するには、次のコマンドを使用します。

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

--------------------------------------------------------

Msgs/sec   Msg Bytes/sec   Pkts/sec    Pkt Bytes/sec   

In   Out     In      Out     In   Out     In      Out  

--------------------------------------------------------

0     0      27      56      0     0      38      66   

10    0     7365     56      10    10    7457    1132  

0     0      27      56      0     0      38      73   

0     10     27     7402     10    20    1400    8459  

0     0      27      56      0     0      38      73   

ブローカによって収集され、レポートされるデータの詳細については、「ブローカ全体のメトリックス」を参照してください。


接続サービスの管理

imqcmd ユーティリティーには、次の接続サービス管理タスクを実行するために使用できるサブコマンドが含まれています。

ブローカは、アプリケーションクライアントと管理クライアントの両方からの通信をサポートしています。Message Queue のブローカで現在使用できる接続サービスを、表 5-1 に示します。表が示すように、各サービスは使用するサービスタイプ (アプリケーションクライアントの場合は NORMAL、管理クライアントの場合は ADMIN) と基礎となるトランスポートプロトコルに関連付けられます。

表 5-1 ブローカがサポートする接続サービス 

サービス名

サービスタイプ

プロトコルタイプ

jms

NORMAL

tcp

ssljms (Enterprise Edition)

NORMAL

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

httpjms (Enterprise Edition)

NORMAL

http

httpsjms (Enterprise Edition)

NORMAL

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

admin

ADMIN

tcp

ssladmin (Enterprise Edition)

ADMIN

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

imqcmd サブコマンドを使用して、接続サービス全体を管理するか、または特定の接続サービスを管理することができます。サブコマンドの対象が特定のサービスの場合は、-n オプションを使用して、表 5-1 の「サービス名」列に示されたいずれかの名前を指定します。

接続サービスの一覧表示

ブローカで使用できる接続サービスを一覧表示するには、list svc サブコマンドを使用します。

次に示すのは、list svc サブコマンドの構文です。

このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカのすべての接続サービスを一覧表示します。

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

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

------------------------------------------------

Service Name    Port Number        Service State

------------------------------------------------

admin           41844 (dynamic)    RUNNING

httpjms         -                  UNKNOWN

httpsjms        -                  UNKNOWN

jms             41843 (dynamic)    RUNNING

ssladmin         dynamic            UNKNOWN

ssljms          dynamic            UNKNOWN

接続サービス情報の表示

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

次に示すのは、query svc サブコマンドの構文です。

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

たとえば、次のように指定します。

パスワードの入力を要求した後、コマンドは次のような出力を生成します。

Service Name                           jms

Service State                          RUNNING

Port Number                            60920 (dynamic)

                                     

Current Number of Allocated Threads    0

Current Number of Connections          0

                                     

Min Number of Threads                  10

Max Number of Threads                  1000

接続サービスのプロパティーの更新

表 5-2 に示す 1 つ以上のサービスのプロパティーの値を変更するには、update サブコマンドを使用します。

表 5-2 imqcmd によって更新される接続サービスプロパティー

プロパティー

説明

port

更新するサービスに割り当てられるポートです (httpjms または httpsjms には適用しない)。値 0 は、ポートマッパーによって動的に割り当てられるポートを示しています。

minThreads

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

maxThreads

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

次に示すのは、update サブコマンドの構文です。

このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスの特定の属性を更新します。サービスの属性については、「接続のプロパティー」を参照してください。

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

接続サービスのメトリックスの表示

シングルサービスに関するメトリックス情報を表示するには、metrics サブコマンドを使用します。

次に示すのは、metrics サブコマンドの構文です。

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

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

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

出力で表示するサンプル数を指定するには、-msp オプションを使用します。デフォルトは無制限です (無限)。

たとえば、jms 接続サービスによって処理されたメッセージとパケットの累計数を取得するには、次のコマンドを使用します。

パスワードの入力を要求した後、コマンドは次のような出力を生成します。

-------------------------------------------------

  Msgs      Msg Bytes      Pkts      Pkt Bytes   

In   Out    In     Out   In   Out    In     Out  

-------------------------------------------------

164  100  120704  73600  282  383  135967  102127

657  100  483552  73600  775  876  498815  149948

imqcmd を使用して接続サービスのメトリックスをレポートする方法の詳細は、「接続サービスのメトリックス」を参照してください。

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

管理サービス (停止することが禁止されているサービス) 以外のサービスを停止するには、pause svc サブコマンドと resume svc サブコマンドを使用します。

次に示すのは、pause svc サブコマンドの構文です。

このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスを停止します。たとえば、次のコマンドは、デフォルトのブローカで実行している httpjms サービスを停止します。

サービスを停止すると、次のような結果になります。

サービスを再開するには、resume svc サブコマンドを使用します。

次に示すのは、resume svc サブコマンドの構文です。

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


接続情報の入手

imqcmd ユーティリティーには、接続に関する情報を一覧表示し取得するために使用できるサブコマンドが含まれています。

list cxn サブコマンドは、指定されたサービス名のすべての接続を一覧表示します。次に示すのは、list cxn サブコマンドの構文です。

このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカの指定したサービス名の接続をすべて一覧表示します。サービス名が指定しない場合は、すべての接続が一覧表示されます。

たとえば、次のコマンドはデフォルトのブローカのすべての接続を表示します。

パスワードの入力を要求した後、コマンドは次のような出力を生成します。

Listing all the connections on the broker specified by:

-----------------------------------

Host                   Primary Port

------------------------------------

localhost              7676

---------------------------------------------------------------------------

Connection ID         User    Service   Producers  Consumers    Host

---------------------------------------------------------------------------

1964412264455443200   guest   jms       0          1            127.0.0.1

1964412264493829311   admin   admin     1          1            127.0.0.1

Successfully listed connections.

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

このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカの指定した接続に関する情報を表示します。

たとえば、次のように指定します。

パスワードの入力を要求した後、コマンドは次のような出力を生成します。

Connection ID      421085509902214374

User               guest

Service            jms

Producers          0

Consumers          1

Host               111.22.333.444

Port               60953

Client ID          

Client Platform    


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

imqcmd サブコマンドを使用して、次のような操作を実行して、ブローカの永続サブスクリプションを管理できます。

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

指定された物理的送信先の永続サブスクリプションを一覧表示するには、list dur サブコマンドを使用します。次に示すのは、list dur サブコマンドの構文です。

たとえば、次のコマンドはローカルホストのデフォルトポートのブローカを使用する、トピック SPQuotes のすべての永続サブスクリプションを一覧表示します。

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

Name        Client ID       Number of   Durable Sub

                            Messages      State

----------------------------------------------------------------

myDurable   myClientID       1           INACTIVE

list dur サブコマンドから返される情報を使用して、破棄する必要がある永続サブスクリプションやメッセージを消去する必要がある永続サブスクリプションを識別することができます。

purge dur サブコマンドは、指定されたクライアント識別子を持つ特定の永続サブスクリプションのすべてのメッセージを消去します。次に示すのは、purge dur サブコマンドの構文です。

destroy dur サブコマンドは、指定されたクライアント識別子を持つ特定の永続サブスクリプションを破棄します。次に示すのは、destroy dur サブコマンドの構文です。

たとえば、次のコマンドは、永続サブスクリプション myDurable と clientID myClientID を破棄します。


トランザクションの管理

クライアントアプリケーションによって開始されたトランザクションはすべてブローカによって記録されます。これらは、分散トランザクション (XA リソース) マネージャーによって管理される Message Queue の単純なトランザクション、または分散トランザクションです。

各トランザクションには、Message Queue トランザクション ID が付けられています。これは、ブローカのトランザクションを一意に識別するための 64 ビットの数字です。また、分散トランザクションには、分散トランザクションマネージャーによって割り当てられる最大 128 バイトの分散トランザクション ID (XID) が付けられます。Message Queue は、Message Queue トランザクション ID と XID の関連付けを保持します。

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

ブローカが追跡するすべてのトランザクションを一覧表示するには、list txn コマンドを使用します。次に示すのは、list tx サブコマンドの構文です。

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

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

---------------------------------------------------------------

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

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

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

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

query サブコマンドを使用すると、同じ情報のほかに、クライアント ID、接続識別子、分散トランザクション ID (XID) などの多数の追加された値を確認できます。次に示すのは、query txn サブコマンドの構文です。

たとえば、次の例では以下のような出力が生成されます。

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

次に示すのは、commit サブコマンドの構文です。

たとえば、次のように指定します。

次に示すのは、rollback サブコマンドの構文です。

詳細は、表 14-2imq.transaction.autorollback プロパティーを参照してください。

ブローカの起動時に、PREPARED 状態のトランザクションが自動的にロールバックされるように、ブローカを設定することも可能です。



前へ      目次      索引      次へ     


Part No: 819-3560.   Copyright 2005 Sun Microsystems, Inc. All rights reserved.