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

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

第 5 章
ブローカの管理

この章では、ブローカとブローカのサービスの管理に関する基本的なタスクを実行する方法について説明します。この章では、次の節について説明します。

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


前提条件

ブローカの管理には、imqcmd コマンドと imqusermgr コマンドを使用します。ブローカを管理する前に、次の作業が必要です。


imqcmd コマンドユーティリティの使用

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

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

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

それぞれの imqcmd コマンドはユーザーリポジトリに対して認証されるため、ユーザー名とパスワードが必要になります。次のような例外があります。

ユーザー名を指定する

管理ユーザー名を指定する場合は、-u オプションを使用します。ユーザー名を省略すると、コマンドから入力が要求されます。

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

パスワードを指定する

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

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

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

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

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

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

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

次の例では、myserver のポート 1564 で実行中のブローカのプロパティを一覧表示しています。ユーザー名は aladdin です。このコマンドは、ユーザー名 aladdinadmin グループに割り当てられるようにユーザーリポジトリの更新を要求します。

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

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


ヘルプの表示

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

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

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


製品のバージョンの表示

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

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


ブローカ情報の表示

シングルブローカに関する情報のクエリーと表示を行うには、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 update bkr -o "imq.autocreate.queue=false" -u admin


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

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

ブローカを停止する

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

ただし、ブローカを停止しても管理コネクションサービスは中断されないため、ブローカへのメッセージを制限するために必要な管理タスクは実行できます。たとえば、特定の物理的送信先にメッセージが集中した場合には、ブローカを停止し、問題の修復に役立つ次のいずれかを実行できます。

ブローカを停止しても、cluster コネクションサービスは継続されます。ただし、クラスタ内のメッセージ配信は、クラスタ内のブローカによって実行される配信機能によって異なります。

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

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

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

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

ブローカを再開する

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

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

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

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


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

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

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

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

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

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

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

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


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

ブローカに関するメトリックス情報を表示するには、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 に示します。「サービス名」列の値は、-n オプションでサービス名を指定するのに使用する値になります。表が示すように、各サービスは使用するサービスタイプ (アプリケーションクライアントの場合は 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 ベースセキュリティ)

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

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

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

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

サブコマンドは、コマンド行で次のように使用します。

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

次のコマンドでは、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 サブコマンドの構文です。

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

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

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

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 サブコマンドの構文です。

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

次のようなコマンド行を使用します。

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

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

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

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

次のようなコマンド行を使用します。


コネクション情報の入手

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

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 サブコマンドから返される情報を使用して、破棄する必要がある永続サブスクリプションやメッセージをパージする必要がある永続サブスクリプションを識別することができます。

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

サブスクリプションを識別するには、サブスクリプションの名前とクライアント ID を使用します。たとえば、次のように指定します。

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


トランザクションの管理

クライアントアプリケーションによって開始されたトランザクションはすべてブローカによって記録されます。これらは、分散トランザクション (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-3 を参照)、ブローカの起動時に、PREPARED 状態のトランザクションを手動でコミット、またはロールバックする必要があります。

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

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

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

これはコマンドにより生成された出力です。

Client ID

Connection                 guest@192.18.116.219:62209->jms:62195

Creation time              1/30/02 10:08:31 AM

Number of acknowledgments 0

Number of messages         4

State                      PREPARED

Transaction ID             64248349708800

User name                  guest

XID

6469706F6C7369646577696E6465723130313234313431313030373230

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

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

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

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

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

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



前へ      目次      索引      次へ     


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