マルチプラットフォームでのキュー・マネージャーの作成と管理
メッセージおよびキューを使用するには、事前に少なくとも 1 つのキュー・マネージャーとそれに関連するオブジェクトを作成し、開始しておく必要があります。 キュー・マネージャーは、関連したリソース、特にキュー・マネージャー自体が所有しているキューを管理します。 これは、 IBM® MQ オブジェクトを作成、変更、表示、および削除するためのメッセージ・キューイング・インターフェース (MQI) 呼び出しおよびコマンド用のアプリケーションにキューイング・サービスを提供します。
始める前に
- キュー・マネージャーとインストール済み環境の関連付け
- キュー・マネージャーを作成するには、 IBM MQ 制御コマンド crtmqmを使用します。 crtmqm コマンドは、キュー・マネージャーを、その crtmqm コマンドを発行したインストール済み環境と自動的に関連付けます。 キュー・マネージャー上で作動するコマンドの場合は、そのキュー・マネージャーと関連付けられたインストール済み環境から、そのコマンドを発行する必要があります。 setmqm コマンドを使用して、キュー・マネージャーの関連付けられたインストールを変更できます。 Windows インストーラーは、インストールを実行するユーザーを mqm グループに追加しないことに注意してください。詳しくは、 UNIX, Linux®, and Windows上の IBM MQ を管理する権限を参照してください。
- 命名規則
- すべてのプラットフォーム上のキュー・マネージャーと通信できるようにするため、大文字名を使用します。 入力どおりに名前が割り当てられることに注意してください。 あまりタイプ入力しなくても済むように、不必要に長い名前を使用しないでください。
- 固有のキュー・マネージャー名の指定
- キュー・マネージャーを作成するときには、ネットワーク内のどこにも同じ名前のキュー・マネージャーがないことを確かめる必要があります。 キュー・マネージャー名は、作成時には検査されません。固有の名前でないと、分散キューイング用のチャネルを作成することができなくなります。 また、パブリッシュ/サブスクライブ・メッセージング用にネットワークを使用する場合、サブスクリプションは、それを作成したキュー・マネージャー名と関連付けられています。 このため、クラスターまたは階層内に同じ名前のキュー・マネージャーが存在する場合、結果としてパブリケーションがそれらに到達しない可能性があります。
確実に固有の名前になるようにする方法の 1 つは、各キュー・マネージャー名に、接頭部として固有のノード名を付けることです。 例えば、ノードの名前が
ACCOUNTS
である場合、キュー・マネージャーにACCOUNTS.SATURN.QUEUE.MANAGER
という名前を付けることができます。ここで、SATURN
は特定のキュー・マネージャーを識別し、QUEUE.MANAGER
はすべてのキュー・マネージャーに与えることができる拡張子です。 あるいは、これを省略することもできますが、ACCOUNTS.SATURN
とACCOUNTS.SATURN.QUEUE.MANAGER
は異なるキュー・マネージャー名であることに注意してください。他のエンタープライズとの通信に IBM MQ を使用する場合は、独自のエンタープライズ名を接頭部として含めることもできます。 これは、例には示されていません。この方法を一層理解しにくくしてしまうためです。
注: 制御コマンドのキュー・マネージャー名には大/小文字の区別があります。 つまり、jupiter.queue.manager
という名前とJUPITER.queue.manager
という名前の 2 つのキュー・マネージャーを作成できるということです。 しかし、複雑な問題点もあります。 - キュー・マネージャー数の制限
- リソースに余裕がある限り、いくつでもキュー・マネージャーを作成できます。 ただし、各キュー・マネージャーは、独自のリソースを必要とするため、それぞれが 10 個のキューを持つ 10 個のキュー・マネージャーを作成するよりも、ノードに
100 個のキューを持つ 1 個のキュー・マネージャーを作成する方が
一般的には有効です。
実動システムでは、1 つのキュー・マネージャーで多数のプロセッサーを活用できますが、大規模なサーバー・マシンでは複数のキュー・マネージャーを利用する方が効果的に運用できます。
- デフォルト・キュー・マネージャーの指定
- 各ノードにはデフォルトのキュー・マネージャーが必要ですが、デフォルトのキュー・マネージャーがないノードで IBM MQ を構成することも可能です。 デフォルト・キュー・マネージャーとは、アプリケーションが MQCONN 呼び出しでキュー・マネージャー名を指定しなかった場合に、そのアプリケーションが接続されるキュー・マネージャーのことです。 また、これは、キュー・マネージャー名を指定せずに runmqsc コマンドを呼び出したときに MQSC コマンドを処理するキュー・マネージャーでもあります。
あるキュー・マネージャーをデフォルト・キュー・マネージャーとして指定すると、ノードについての既存のデフォルト・キュー・マネージャーの 指定は置き換えられます。
デフォルトのキュー・マネージャーを変更すると、その他のユーザーまたはアプリケーションに影響を与える可能性があります。 変更しても、現在接続されているアプリケーションに影響はありません。それらのアプリケーションは、以後の MQI 呼び出しで元の接続呼び出しからのハンドルを使用できるためです。 このハンドルにより、呼び出しは確実に同じキュー・マネージャーに対して出されます。 デフォルト・キュー・マネージャーを変更した後 に接続されるアプリケーションは、新しいデフォルト・キュー・マネージャーに接続されます。 こうしたことを行う場合には、デフォルト・キュー・マネージャーを変更する場合はその前に、上記の事柄を考慮する必要があります。
デフォルト・キュー・マネージャーの作成については、 デフォルト・キュー・マネージャーの作成で説明されています。
- 送達不能キューの指定
- 送達不能キューとは、正しい宛先に送ることができなかったメッセージを入れるローカル・キューのことです。
ネットワークの各キュー・マネージャーが送達不能キューを持っていることが重要です。 送達不能キューを定義しない場合、アプリケーション・プログラム内にエラーが起こると、チャネルがクローズされ、管理コマンドへの応答が受信されないことがあります。
例えば、アプリケーションが別のキュー・マネージャーのキューにメッセージを入れようとしたときに、誤ったキュー名が与えられると、チャネルが停止し、メッセージは伝送キューに残ったままになります。 その結果、他のアプリケーションは、このチャネルを使用して自分の メッセージを送ることができなくなります。
キュー・マネージャーに送達不能キューがある場合には、チャネルは影響を受けません。 未配布メッセージは受信側の送達不能キューに入れられ、チャネルとその伝送キューはそのまま使用できます。
キュー・マネージャーを作成するときは、-u フラグを使用して送達不能キューの名前を指定します。 MQSC コマンドを使用することによって、既に定義したキュー・マネージャーの属性を変更し、使用する送達不能キューを指定することもできます。 MQSC コマンド ALTER の例については、 キュー・マネージャーの操作 を参照してください。
- デフォルト伝送キューの指定
- 伝送キューとは、リモート・キュー・マネージャーへ送られる途中のメッセージが、伝送されるまでの間キューイングされるローカル・キューのことです。 デフォルト伝送キューとは、伝送キューが明示的に定義されなかった場合に使用されるキューのことです。 各キュー・マネージャーには、1 つのデフォルト伝送キューを割り当てることができます。
キュー・マネージャーを作成するときは、-d フラグを使用して、デフォルト伝送キューの名前を指定します。 これによって実際にキューが作成されるわけではありません。後で明示的にキューを作成する必要があります。 詳しくは、 ローカル・キューの処理 を参照してください。
- 必要なロギング・パラメーターの指定
- crtmqm コマンドには、ロギングのタイプ、およびログ・ファイルのパスとサイズなどのロギング・パラメーターを指定できます。開発環境では、デフォルト・ロギング・パラメーターで十分です。 しかし、例えば、次のような場合にはデフォルトを変更できます。
- 大きなログをサポートできないロー・エンドのシステム構成である場合
- 同時に多数の長いメッセージがキューに留まることが予想される場合
- 多数の持続メッセージがキュー・マネージャーを介して渡されることが予想される場合
ロギング・パラメーターについて詳しくは、 高可用性、リカバリー、および再始動の構成を参照してください。
- ( IBM MQ for UNIX システムの場合のみ)
- crtmqm コマンドを使用する前に、別個のローカル・ファイル・システム上でも キュー・マネージャー・ディレクトリーを作成できます
/var/mqm/qmgrs/qmgr
。 crtmqm の使用時に、/var/mqm/qmgrs/qmgr
ディレクトリーが存在し、それが空で、mqm によって所有されている場合、そのディレクトリーはキュー・マネージャーのデータ用に使用されます。 ディレクトリーが mqm によって所有されていない場合、作成は First Failure Support Technology ( FFST ) で失敗します。 メッセージ。 そのディレクトリーが空でない場合は、新たにディレクトリーが作成されます。
本タスクについて
キュー・マネージャーを作成するには、 IBM MQ 制御コマンド crtmqmを使用します。 詳しくは、crtmqmを参照してください。 crtmqm コマンドは、必要なデフォルト・オブジェクトとシステム・オブジェクトを自動的に作成します ( システム・デフォルト・オブジェクト を参照)。 デフォルト・オブジェクトは、作成されるすべてのオブジェクト定義の基礎になります。システム・オブジェクトはキュー・マネージャーの操作に必要です。
Windows システムでは、 crtmqm コマンドの sax オプションを使用して、キュー・マネージャーの複数インスタンスを開始することができます。
キュー・マネージャーとそのオブジェクトが作成されている場合は、strmqm コマンドを使用してそのキュー・マネージャーを開始します。