サービス・コンポーネントの作成
このセクションでは、サービス、コンポーネント、エントリー・ポイント、および戻りコードの関係について説明します。
機能およびコンポーネント
- キュー名を検索して、キューが定義されているキュー・マネージャーの名前を戻します。
- キュー名をサービスのディレクトリーに挿入します。
- キュー名をサービスのディレクトリーから削除します。
さらに、初期化と終了の機能も含まれています。
インストール可能サービスは、1 つ以上のサービス・コンポーネントによって 提供されます。 各コンポーネントは、そのサービスに定義されている機能の一部または全部を実行できます。 例えば、 IBM® MQ for AIX®では、提供されている許可サービス・コンポーネントである OAM が、使用可能なすべての機能を実行します。 詳しくは、 許可サービス・インターフェース を参照してください。 コンポーネントは、サービスのインプリメントに必要な基礎となるリソースやソフトウェア (例えば、LDAP ディレクトリー) を管理する役割も果たしています。 構成ファイルは、コンポーネントをロードして、提供される機能ルーチンのアドレスを判別するための標準的な手段を用意してくれます。
- サービスは構成ファイル内のスタンザによってキュー・マネージャーに定義されます。
- 各サービスは、キュー・マネージャーに提供されているコードによってサポートされます。 ユーザーはこのコードを変更できないので、独自のサービスを作成することはできません。
- 各サービスは 1 つ以上のコンポーネントによってインプリメントされます。これらは製品に付属のものを使用したり、ユーザーで作成したりすることができます。 1 つのサービスに対して複数のコンポーネントを起動し、それぞれのコンポーネントにサービス内の異なる機能をサポートさせることもできます。
- エントリー・ポイントはサービス・コンポーネントをキュー・マネージャー内の サポートされているコードに接続します。

エントリー・ポイント
各サービス・コンポーネントは、特定のインストール可能サービスをサポートする ルーチンのエントリー・ポイント・アドレスのリストによって表されます。 インストール可能サービスは、各ルーチンによって実行される機能を定義します。
構成する際にサービス・コンポーネントを配列する順序は、サービスの要求を満たすためにエントリー・ポイントが呼び出される順序を定義するものです。
提供されているヘッダー・ファイル cmqzc.h では、各サービスへの提供されているエントリー・ポイントに MQZID_ の接頭部があります。
サービスが存在する場合、サービスは事前定義の順序に読み込まれます。 次のリストは、サービスとその初期化の順序を示しています。
NameServiceAuthorizationServiceUserIdentifierService
AuthorizationService は、デフォルトで構成される唯一のサービスです。 NameService および UserIdentifierService を使用するには、それらを手動で構成する必要があります。
サービスおよびサービス・コンポーネントでは、1 対 1 または 1 対多のマッピングがあります。 サービスごとに、複数のサービス・コンポーネントを定義できます。 UNIX および Linux® システムでは、 ServiceComponent スタンザの Service 値は、 qm.ini ファイル内の Service スタンザの Name 値と一致している必要があります。 Windowsでは、 ServiceComponent のサービス・レジストリー・キー値は、名前レジストリー・キー値と一致する必要があり、 HKEY_LOCAL_MACHINE\SOFTWARE\IBM\WebSphere MQ\Installation\MQ_INSTALLATION_NAME\Configuration\QueueManager\qmname\ として定義されます。ここで、 qmname はキュー・マネージャーの名前です。
UNIX および Linux システムの場合、サービス・コンポーネントは、 qm.ini ファイルに定義されている順序で開始されます。 Windowsでは、 Windows レジストリーが使用されるため、 IBM MQ は、値をアルファベット順に返す RegEnumKey 呼び出しを発行します。 そのため、Windows では、サービスはレジストリーで定義されているとおりにアルファベット順で呼び出されます。
ServiceComponent 定義の順序付けは重要です。 この順序付けにより、特定のサービスでコンポーネントが実行される順序が決まります。 例えば、 Windows 上の AuthorizationService は、 MQSeries.WindowsNT.auth.serviceという名前のデフォルト OAM コンポーネントを使用して構成されます。 このサービスで追加のコンポーネントを定義して、デフォルトの OAM をオーバーライドすることができます。 MQCACF_SERVICE_COMPONENT を指定しない限り、アルファベット順で最初に来るコンポーネントが、要求を処理するために使用され、そのコンポーネントの名前が使用されます。
戻りコード
サービス・コンポーネントは、キュー・マネージャーに戻りコードを提供して、さまざまな状況を報告します。 それらは処理の成功または失敗を報告して、キュー・マネージャーが次のサービス・コンポーネントに進むかどうかを示します。 別の Continuation パラメーターが、この指示を伝えます。
コンポーネント・データ
単一のサービス・コンポーネントでは、データをさまざまな機能で共用することが必要になることがあります。 インストール可能なサービスは、サービス・コンポーネントの各呼び出しで受け渡しするためにオプションのデータ域を提供します。 このデータ域は、サービス・コンポーネントが専用に使用します。 これは、アドレス・スペースまたはプロセスが異なる場合でも、特定の機能のすべての呼び出しによって共用されます。 呼び出される場合は常にサービス・コンポーネントからアクセス可能であることを保証されます。 このデータ域のサイズを ServiceComponent スタンザで宣言する必要があります。