IBM® WebSphere MQ API 出口のコンテキスト構造体 (MQAXC)
外部制御ブロックである MQAXC 構造体は、API 出口への入力パラメーターとして使用されます。
typedef struct tagMQAXC {
MQCHAR4 StrucId; /* Structure identifier */
MQLONG Version; /* Structure version number */
MQLONG Environment; /* Environment */
MQCHAR12 UserId; /* UserId associated with appl */
MQBYTE40 SecurityId /* Extension to UserId running appl */
MQCHAR264 ConnectionName; /* Connection name */
MQLONG LongMCAUserIdLength; /* long MCA user identifier length */
MQLONG LongRemoteUserIdLength; /* long remote user identifier length */
MQPTR LongMCAUserIdPtr; /* long MCA user identifier address */
MQPTR LongRemoteUserIdPtr; /* long remote user identifier address */
MQCHAR28 ApplName; /* Application name */
MQLONG ApplType; /* Application type */
MQPID ProcessId; /* Process identifier */
MQTID ThreadId; /* Thread identifier */
/* Ver:1 */
MQCHAR ChannelName[20] /* Channel Name */
MQBYTE4 Reserved1; /* Reserved */
PMQCD pChannelDefinition; /* Channel Definition pointer */
};
MQAXC へのパラメーターは、以下のとおりです。- StrucId (MQCHAR4) - 入力
- 値が MQAXC_STRUC_ID の出口構造体 ID。C プログラムの場合、定数 MQAXC_STRUC_ID_ARRAY も定義されます。この値は MQAXC_STRUC_ID と同じですが、これはストリングではなく文字の配列です。
出口ハンドラーは、このフィールドを、各出口関数への入り口で設定します。
- Version (MQLONG) - 入力
- 構造体のバージョン番号。値は次のとおりです。
- MQAXC_VERSION_2
- 出口コンテキスト構造体のバージョン番号。
- MQAXC_CURRENT_VERSION
- 出口コンテキスト構造体の現行バージョン番号。
- Environment (MQLONG) - 入力
- 出口機能を起動した WebSphere® MQ API 呼び出しの発行元の環境。このフィールドに有効な値は、次のとおりです。
- MQXE_OTHER
- API 出口がサーバー・アプリケーションから呼び出される場合、この値は API 出口が参照する呼び出しと一貫性のある値になります。これは、API 出口が変更されずにクライアント上で実行され、それ以外のものは参照しないことを意味します。
出口がクライアント上で実行されているかどうかを判別する必要がある場合、出口は ChannelName フィールドおよび ChannelDefinition フィールドを参照して、これを判別できます。
- MQXE_MCA
- メッセージ・チャネル・エージェント
- MQXE_MCA_SVRCONN
- クライアントの代わりに活動しているメッセージ・チャネル・エージェント。
- MQXE_COMMAND_SERVER
- コマンド・サーバー
- MQXE_MQSC
- runmqsc コマンド・インタープリター。
- UserId (MQCHAR12) - 入力
- アプリケーションに関連したユーザー ID。特にクライアント接続の場合、このフィールドにはチャネル・コードが実行しているユーザー ID ではなく、受諾されたユーザーのユーザー ID が含まれます。
クライアントからブランク・ユーザー ID が渡される場合、既に使用中のユーザー ID は変更されません。つまり、新規ユーザー ID は受諾されません。
出口ハンドラーは、このフィールドを、各出口関数への入り口で設定します。このフィールドの長さは MQ_USER_ID_LENGTH によって指定されます。
クライアントの場合、これはクライアントからサーバーに送信されるユーザー ID です。MCAUser 構成または CHLAUTH 構成によりユーザー ID が変更される可能性があるため、これはキュー・マネージャーでクライアントを実行する際に使用される有効なユーザー ID ではない場合があることに注意してください。
- SecurityId (MQBYTE40) - 入力
- アプリケーションを実行しているユーザー ID の拡張版。この長さは、MQ_SECURITY_ID_LENGTH によって設定されます。
クライアントの場合、これはクライアントからサーバーに送信されるユーザー ID です。MCAUser 構成または CHLAUTH 構成によりユーザー ID が変更される可能性があるため、これはキュー・マネージャーでクライアントを実行する際に使用される有効なユーザー ID ではない場合があることに注意してください。
- ConnectionName (MQCHAR264) - 入力
- クライアントのアドレスに設定された接続名フィールド。例えば TCP/IP では、これはクライアントの IP アドレスになります。
このフィールドの長さは MQ_CONN_NAME_LENGTH によって指定されます。
クライアントの場合、これはキュー・マネージャーのパートナー・アドレスです。
- LongMCAUserIdLength (MQLONG) - 入力
- 長い MCA ユーザー ID の長さ。
MCA がキュー・マネージャーに接続するとき、このフィールドは長い MCA ユーザー ID の長さに (そのような ID がない場合はゼロに) 設定されます。
クライアントの場合、これはクライアントの長いユーザー ID です。
- LongRemoteUserIdLength (MQLONG) - 入力
- 長いリモート・ユーザー ID の長さ。
MCA がキュー・マネージャーに接続するとき、このフィールドは長いリモート・ユーザー ID の長さに設定されます。その他の場合には、このフィールドはゼロに設定されます。
クライアントの場合は、このフィールドをゼロに設定します。
- LongMCAUserIdPtr (MQPTR) - 入力
- 長い MCA ユーザー ID のアドレス。
MCA がキュー・マネージャーに接続するとき、このフィールドは長い MCA ユーザー ID のアドレスに (そのような ID がない場合はヌル・ポインターに) 設定されます。
クライアントの場合、これはクライアントの長いユーザー ID です。
- LongRemoteUserIdPtr (MQPTR) - 入力
- 長いリモート・ユーザー ID のアドレス。
MCA がキュー・マネージャーに接続するとき、このフィールドは長いリモート・ユーザー ID のアドレスに (そのような ID がない場合はヌル・ポインターに) 設定されます。
クライアントの場合は、このフィールドをゼロに設定します。
- ApplName (MQCHAR28) - 入力
- WebSphere MQ API 呼び出しを発行したアプリケーションまたはコンポーネントの名前。
ApplName を生成するための規則は、MQPUT のデフォルト名を生成するための規則と同じです。
このフィールドの値は、プログラム名のオペレーティング・システムを照会して見つけることができます。この長さは、MQ_APPL_NAME_LENGTH によって設定されます。
- ApplType (MQLONG) - 入力
- WebSphere MQ API 呼び出しを発行したアプリケーションまたはコンポーネントのタイプ。
この値はアプリケーションがコンパイルされたプラットフォームの MQAT_DEFAULT、または定義済み MQAT_* 値の 1 つと同じになります。
出口ハンドラーは、このフィールドを、各出口関数への入り口で設定します。
- ProcessId (MQPID) - 入力
- オペレーティング・システムのプロセス ID。
該当する場合、出口ハンドラーは、このフィールドを、各出口関数への入り口で設定します。
- ThreadId (MQTID) - 入力
- MQ スレッド ID。
これは、MQ トレースおよび FFST™ ダンプで使用される ID と同じですが、オペレーティング・システムのスレッド ID とは異なる場合があります。
該当する場合、出口ハンドラーは、このフィールドを、各出口関数への入り口で設定します。
- ChannelName (MQCHAR) - 入力
- ブランクが埋め込まれたチャネルの名前 (該当し、既知の場合)。
該当しない場合、このフィールドはヌル文字に設定されます。
- Reserved1 (MQBYTE4) - 入力
- このフィールドは予約済みです。
- ChanneDefinition (PMQCD) - 入力
- 使用中のチャネル定義へのポインター (該当し、既知の場合)。
該当しない場合、このフィールドはヌル文字に設定されます。
接続の処理が WebSphere MQ チャネルの代わりに行われており、そのチャネル定義が読み取り済みである場合にのみ、ポインターが入力されることに注意してください。
特に、チャネルで最初の MQCONN 呼び出しが行われるときには、サーバーにチャネル定義は指定されません。さらに、ポインターが入力されると、そのポインターによりポイントされる構造体 (およびすべてのサブ構造体) を読み取り専用として処理する必要があります。構造体の更新は予測不能な結果を発生し、サポートされていません。
クライアントの場合、クライアントに指定された値を含まないフィールドには、クライアント・アプリケーションに適した値が含まれます。
資料