MQCB_FUNCTION - コールバック関数
MQCB_FUNCTION 関数呼び出しは、イベント処理および非同期メッセージ・コンシューム用のコールバック関数です。
構文
MQCB_FUNCTION(ホーコン、メッセージの説明、取得メッセージオプション、バッファ、コンテクスト)
パラメーター
- Hconn
- タイプ: MQHCONN - 入力
このハンドルは、キュー・マネージャーに対する接続を表します。
Hconnの値は、先行の MQCONN または MQCONNX 呼び出しによって戻されたものです。 z/OS® for CICS® アプリケーションでは、MQCONN 呼び出しを省略できます。また、Hconn に以下の値を指定できます。MQHC_DEF_HCONN
デフォルトの接続ハンドル。
- MsgDesc
- タイプ: MQMD - 入力
この構造は、取り出されるメッセージの属性を記述します。
詳しくは、 MQMD-メッセージ記述子 を参照してください。
渡される MQMD のバージョンは、コンシューマー機能を定義した MQCB 呼び出し上で渡されるバージョンと同じです。
バージョン 4 の MQGMO を使用して MQMD ではなくメッセージ・ハンドルを戻すよう要求した場合は、MQMD のアドレスはヌル文字として渡されます。
これはメッセージ・コンシューマー関数に対する入力フィールドで、イベント・ハンドラー関数には関係ありません。
- GetMsgOpts
- タイプ: MQGMO - 入力
メッセージ・コンシューマーのアクションの制御に使用するオプション。 このパラメーターには、戻されるメッセージに関する追加情報も含まれます。
詳しくは、 MQGMO を参照してください。
サポートされている最新バージョンが、渡される MQGMO のバージョンになります。
これはメッセージ・コンシューマー関数に対する入力フィールドで、イベント・ハンドラー関数には関係ありません。
- Buffer
- タイプ: MQBYTExBufferLength - 入力
これは、メッセージ・データを含む領域です。
この呼び出しに関する使用可能なメッセージがない場合か、メッセージにメッセージ・データが含まれていない場合は、
Bufferのアドレスはヌルとして渡されます。これはメッセージ・コンシューマー関数に対する入力フィールドで、イベント・ハンドラー関数には関係ありません。
- Context
- タイプ: MQCBC - 入出力
この構造は、コールバック関数に対してコンテキスト情報を提供します。 詳しくは、 MQCBC-コールバック・コンテキスト を参照してください。
使用上の注意
- コールバック・ルーチンが、スレッドを遅らせるかブロックする可能性があるサービス (例えば、待機を指定した MQGET) を使用する場合は、他のコールバックのディスパッチが遅延する可能性があります。
- コールバック・ルーチンの呼び出しごとに別の作業単位が自動的に確立されないので、ルーチンはコミット呼び出しを発行するか、作業の論理バッチが処理されるまでコミットを延期できます。 作業のバッチをコミットすると、最後の同期点以降に呼び出されたすべてのコールバック関数に関するメッセージがコミットされます。
- CICS LINK または CICS START によって呼び出されるプログラムは、チャネル・コンテナーという名前付きオブジェクトにより、CICS サービスを使用してパラメーターを取り出します。 コンテナー名は、パラメーター名と同じです。 詳しくは、CICS の資料を参照してください。
- コールバック・ルーチンは MQDISC 呼び出しを発行できますが、そのルーチン独自の接続では発行しません。 例えば、コールバック・ルーチンは、接続を確立している場合、その接続を切断することもできます。
- 一般的には、コールバック・ルーチンは、毎回同じスレッドから呼び出されることに依存できません。 必要な場合は、接続の開始時に MQCTLO_THREAD_AFFINITY を使用してください。
- コールバック・ルーチンがゼロ以外の理由コードを受け取る場合は、該当するアクションを取らなければなりません。
- MQCB_FUNCTION は、 IMS アダプター内ではサポートされません。