[UNIX、Linux、Windows、IBM i]

qm.ini ファイルの ApiExitLocal スタンザ

ApiExitLocalスタンザは、キューマネージャのAPI終了ルーチンを指定します。

サーバでは、キューマネージャのAPI終了ルーチンを識別するために、qm.iniファイルのApiExitLocalスタンザを変更してください。

[Windows][Linux]あるいは、 Linux® ( x86 と x86-64 ) と Windows では、 IBM® MQ Explorer Exits のキュー・マネージャのプロパティ・ページを使用します。

クライアントでは、キュー・マネージャのAPI終了ルーチンを識別するために、mqclient.iniファイルのApiExitLocalスタンザを変更します。

概要

ApiExitLocal スタンザでは、単一の Module のみを指定できます。 また、以下のように 4 つのモジュールを提供する必要があります。
  • 32 ビット、スレッドなし
  • 32 ビット、スレッドあり
  • 64 ビット、スレッドなし
  • 64 ビット、スレッドあり

IBM MQ は、提供されたモジュール名に _r を付加して出口のスレッド・バージョンを識別しますが、 IBM MQ は、32 ビットおよび 64 ビットのバリアントに対して直接同等のメカニズムを提供しないことに注意してください。

prefix/mqm/samp/bin に同梱されている amqsaxe0 および amqsaxe0_r のバージョンは、キュー・マネージャーのネイティブ・サイズ用に作成されており (現在はすべて 64 ビット)、同じネイティブ・サイズで実行されているアプリケーションでのみ使用できます。

非修飾のモジュール名が提供されている場合は、/var/mqm/exits /var/mqm/exits64IBM MQ32ビットバリアントと64ビットバリアントを検索します

例えば、module=amqsaxe は以下を暗黙に示します。
 /var/mqm/exits/amqsaxe  - 32 bit unthreaded variant
 /var/mqm/exits/amqsaxe_r - 32 bit threaded variant
 /var/mqm/exits64/amqsaxe - 64 bit unthreaded variant
 /var/mqm/exits64/amqsaxe_r - 64 bit threaded variant

[Windows] Windows システムでは、 コマンドを使用して、API終了のエントリーを変更することもできる。 amqmdain (すべてのキュー・マネージャのAPI終了ルーチンを識別するために、ApiExitCommon and ApiExitTemplate stanzas of the mqs.ini file で説明されているように、ApiExitCommonとApiExitTemplateのスタンザを使用する)

API 出口が正しく機能するためには、サーバーからのメッセージを変換されていない状態でクライアントに送信する必要があるので、注意してください。 そのメッセージは、API 出口がメッセージを処理した後に、クライアントで変換される必要があります。 そのため、すべての変換出口がクライアントにインストールされている必要があります。

これらの属性の使用について詳しくは、 API 出口の構成を参照してください。

パラメーター

Name=ApiExit_name
MQAXP 構造体の ExitInfoName フィールドで、API 出口に渡される API 出口の記述名。
この名前は、48 文字以内の固有の名前でなければならず、 IBM MQ オブジェクトの名前 (キュー名など) として有効な文字のみが含まれている必要があります。
Function=function_name
API 出口コードを含むモジュールへの関数エントリー・ポイントの名前。 このエントリー・ポイントは MQ_INIT_EXIT 関数です。
このフィールドの長さは MQ_EXIT_NAME_LENGTH に限定されます。
Module=module_name
API 出口コードを含むモジュール。
このフィールドにモジュールの絶対パス名が入っている場合、それがそのまま使用されます。 このフィールドにモジュール名のみが含まれている場合、そのモジュールは、 qm.ini ファイルの ExitPath スタンザ内の ExitsDefaultPath 属性を使用して配置されます。
異なるスレッド化ライブラリーをサポートするプラットフォームで、API 出口モジュールの非スレッド化バージョンとスレッド化バージョンの両方を提供する必要があります。 スレッド化バージョンは、接尾部 _r を持っている必要があります。 スレッド化されたバージョンの IBM MQ アプリケーション・スタブは、ロードされる前に、指定されたモジュール名に _r を暗黙的に追加します。
このフィールドの長さは、プラットフォームがサポートする最大パス長に限定されます。
Data=data_name
MQAXP 構造体の ExitData フィールドで API 出口に渡されるデータ。
この属性を指定すると、先行および末尾のブランクが除去されて残りのストリングは 32 文字に切り捨てられ、その結果が出口に渡されます。 この属性を省略すると、デフォルト値の 32 文字のブランクが出口に渡されます。
このフィールドの最大長は、32 文字です。
Sequence=sequence_number
その他の API 出口に関してこの API 出口が呼び出される順序。 小さなシーケンス番号の出口は、より大きなシーケンス番号の出口よりも先に呼び出されます。 出口のシーケンス番号は連続である必要はありません。 つまり、1、2、3 の順序は、7、42、1096 の順序と同じ結果となります。 2 つの出口のシーケンス番号が同じ場合は、キュー・マネージャーが最初に呼び出す出口を決定します。 MQAXP の ExitChainAreaPtr で示される ExitChainArea に時刻またはマーカーを設定するかまたは独自のログ・ファイルを作成して、イベントの後に呼び出された出口を判別できます。
この属性は、符号なし数値です。

スタンザの例

ApiExitLocal:
   Name=ClientApplicationAPIchecker
   Sequence=3
   Function=EntryPoint
   Module=/usr/Dev/ClientAppChecker
   Data=9.20.176.20