imqcmd ユーティリティーには、次の接続サービス管理タスクを実行するために使用できるサブコマンドが含まれています。
ブローカは、アプリケーションクライアントと管理クライアントの両方からの通信をサポートしています。Message Queue のブローカで現在使用できる接続サービスを、表 5–1 に示します。表が示すように、各サービスは使用するサービスタイプ (アプリ ケーションクライアントの場合は NORMAL 、管理クライアントの場合は ADMIN) と基礎となるトランスポートプロトコルに関連付けられます。
表 5–1 Message Queue の接続サービス
サービス名 |
サービスタイプ | |
---|---|---|
NORMAL | ||
NORMAL | ||
NORMAL | ||
NORMAL | ||
ADMIN |
TCP |
|
ADMIN |
TLS (SSL ベースセキュリティー) |
imqcmd サブコマンドを使用して、接続サービス全体を管理するか、または特定の接続サービスを管理することができます。サブコマンドの対象が特定のサービスの場合は、-n オプションを使用して、表 5–1の「サービス名」列に示されたいずれかの名前を指定します。
ブローカで使用できる接続サービスを一覧表示するには、list svc サブコマンドを使用します。
次に示すのは、list svc サブコマンドの構文です。
imqcmd list svc [-b hostName: portNumber]
このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカの接続サービスをすべて一覧表示します。
次のコマンドでは、localhost のポート 7676 で実行しているブローカのすべてのサービスが一覧表示されます。
imqcmd list svc -u admin
このコマンドでは、次のような情報が出力されます。
------------------------------------------------ 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 サブコマンドの構文です。
imqcmd query svc -n serviceName [-b hostName:portNumber]
query svc サブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスに関する情報を一覧表示します。
たとえば、次のように指定します。
imqcmd query svc -n jms -u admin
パスワードの入力を要求した後、コマンドは次のような出力を生成します。
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 サブコマンドの構文です。
imqcmd update svc -n serviceName [-b hostName:portNumber] -o attribute=value [-o attribute=value1]…
このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスの特定の属性を更新します。サービスの属性については、「接続のプロパティー」を参照してください。
次のコマンドでは、jms サービスに割り当てられたスレッドの最小数が 20 に変更されます。
imqcmd update svc -n jms -o “minThreads=20” -u admin
シングルサービスに関するメトリックス情報を表示するには、metrics サブコマンドを使用します。
次に示すのは、metrics サブコマンドの構文です。
imqcmd metrics svc -n serviceName [-b hostName:portNumber] [-m metricType ] [-int interval] [-msp numSamples]
このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスのメトリックスを表示します。
表示するメトリックスのタイプを次の中から指定するには、-m オプションを使用します。
ttl 指定した接続サービスを使ってブローカとの間で入出力されているメッセージとパケットのフローに関するメトリックスを表示します (デフォルトのメトリックスタイプ)。
rts 指定した接続サービスを使ってブローカとの間で入出力されているメッセージとパケットのフローレート (1 秒あたり) に関するメトリックスを表示します。
cxn 接続、仮想メモリーヒープ、およびスレッドを表示します。
メトリックスを表示する間隔を秒単位で指定するには、-int オプションを使用します。デフォルトは 5 秒です。
出力で表示するサンプル数を指定するには、-msp オプションを使用します。デフォルトは無制限です (無限)。
たとえば、jms 接続サービスによって処理されたメッセージとパケットの累計数を取得するには、次のコマンドを使用します。
imqcmd metrics svc -n jms -m ttl -u admin
パスワードの入力を要求した後、コマンドは次のような出力を生成します。
------------------------------------------------- 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 サブコマンドの構文です。
imqcmd pause svc -n serviceName [-b hostName:portNumber]
このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスを停止します。たとえば、次のコマンドは、デフォルトのブローカで実行している httpjms サービスを停止します。
imqcmd pause svc -n httpjms -u admin
サービスを停止すると、次のような結果になります。
ブローカは、停止したサービスでの新たなクライアント接続の受け入れを止めます。Message Queue クライアントが新しい接続を開こうとすると、例外が発生します。
停止したサービスの既存の接続はすべて維持されますが、ブローカはサービスが再開されるまでこれらの接続のすべてのメッセージ処理を中断します。たとえば、クライアントがメッセージを送信しようとしても、サービスが再開されるまでは、send メソッドがそれを阻止します。
すでにブローカが受信済みのメッセージのメッセージ配信状態は維持されます。たとえば、トランザクションは中断されず、サービスが再開された時点でメッセージ配信も再開されます。
サービスを再開するには、resume svc サブコマンドを使用します。
次に示すのは、resume svc サブコマンドの構文です。
imqcmd resume svc -n serviceName[-b hostName:portNumber]
このサブコマンドは、デフォルトのブローカ、または指定したホストとポートのブローカで実行している特定のサービスを再開します。