API 出口の構成
API 出口は、ユーザー自身が用意するコード・モジュール (.dll ファイル) で、MQI 呼び出しの直前または直後に実行します。
このタスクについて
IBM® MQ がプログラムからその API エントリー・ポイントへのいずれかに対する呼び出しを受け取ると、IBM MQ はユーザーの API 出口を呼び出します。ユーザーが出口をどのように構成したかに応じて、API 出口は MQI 実行の前か後に実行されます。
呼び出される出口を全く構成しないことも、1 つあるいは多くの出口が呼び出されるように構成することもでき、複数の出口が呼び出される順序を構成することもできます。 Windows と Linux® (x86 および x86-64 プラットフォーム) では、IBM MQ エクスプローラーを使って API 出口を構成することができます。 構成の詳細は .ini ファイルに保管されています。
API 出口定義には 3 つのタイプがあります。
- 共通 (ApiExitCommon)
- コンピューターごとに 1 セットの定義です。 キュー・マネージャーが開始するときに、定義されている API 出口があればそれらが読み取られてキュー・マネージャーに適用されます。 共通 API 出口は IBM MQ プロパティー・ダイアログで構成します。 共通出口は、各ローカル・キュー・マネージャーのプロパティー・ダイアログ内の「ローカル API 出口」テーブルに表示されます。
- テンプレート (ApiExitTemplate)
- コンピューターごとに 1 セットの定義です。 キュー・マネージャーが作成されるときに、ここに定義されている API 出口があれば、それらはローカル出口として、新たに作成されるキュー・マネージャーにコピーされます。 テンプレート API 出口は IBM MQ プロパティー・ダイアログで構成します。
- ローカル (ApiExitLocal)
- キュー・マネージャーごとに 1 セットの定義です。 キュー・マネージャーが開始するときに、「名前」属性が共通出口と同じで「指定変更」が指定されている API 出口が定義されていれば、それらは共通出口をオーバーライドします。 共通 API 出口がオーバーライドされる場合、たとえオプションの「データ」属性に割り当てられた値があっても、共通定義内のフィールドはどれも保存されません。 ローカル API 出口は、キュー・マネージャーのプロパティー・ダイアログで構成します。
IBM MQ およびキュー・マネージャー・プロパティー・ダイアログで API 出口を構成すると、構成ファイル内または Windows レジストリー内の ApiExitCommon、ApiExitTemplate、および ApiExitLocal スタンザに属性値が追加されます。
属性 | 意味 | スタンザ鍵 |
---|---|---|
名前 | MQAXP 構造の ExitInfoName フィールドの API 出口に渡される API 出口の記述名を指定します。 この名前は固有でなければならず、48 文字の長さに制限されています。また IBM MQ オブジェクトの 名前 (キュー名など) に有効な文字だけを使用する必要があります。 | 名前 |
タイプ | 出口のタイプとして、共通 、テンプレート 、ローカル 、または指定変更 を指定します。 |
(個別のスタンザ鍵以外。) |
シーケンス | この属性は符号なしの数値で、この API 出口が他の API 出口との比較で呼び出されるシーケンスを定義します。 シーケンス番号の小さい API 出口は、シーケンス番号の大きい他の API 出口よりも先に呼び出されます。 同じシーケンス番号を持つ異なる複数の API 出口が呼び出される順序は定義されていません。 つまり、キュー・マネージャーに定義された API 出口のシーケンス番号において確実にギャップが存在します。 | シーケンス |
モジュール | API 出口のコードを含むモジュールを指定します。 このフィールドにモジュールの絶対パス名が入っている場合、それがそのまま使用されます。 このフィールドにモジュール名のみが入っている場合は、モジュールはチャネル出口と同じ方法を使用して配置されます。つまり、「キュー・マネージャー・プロパティー」ダイアログの「出口」ページの「出口デフォルト・パス」フィールドの値を使用して配置されます。 | モジュール |
関数 | API 出口のコードを含むモジュールへの関数エントリー・ポイントの名前を指定します。 このエントリー・ポイントは MQ_INIT_EXIT 関数です。 このフィールドの長さは MQ_EXIT_NAME_LENGTH に制限されています。 | 関数 |
データ | この属性が指定されている場合、先行ブランクと末尾ブランクは除去され、 残りのストリングは 32 文字に切り捨てられ、その結果が MQAXP 構造の ExitData フィールドの出口に渡されます。 この属性が指定されていない場合は、デフォルト値の 32 ブランクが MQAXP 構造の ExitData フィールドの出口に渡されます。 | データ |