MQCB_FUNCTION - コールバック関数

MQCB_FUNCTION 関数呼び出しは、イベント処理および非同期メッセージ・コンシューム用のコールバック関数です。

MQCB_FUNCTION 呼び出し定義は、単独で提供され、コールバック関数に渡すパラメーターを記述します。 キュー・マネージャーは、MQCB_FUNCTION という名前の入り口点を提供しません。

呼び出される実際の関数の指定は、 MQCB 呼び出しへの入力であり、 MQCBD 構造体を介して渡されます。

構文

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-コールバック・コンテキスト を参照してください。

使用上の注意

  1. コールバック・ルーチンが、スレッドを遅らせるかブロックする可能性があるサービス (例えば、待機を指定した MQGET) を使用する場合は、他のコールバックのディスパッチが遅延する可能性があります。
  2. コールバック・ルーチンの呼び出しごとに別の作業単位が自動的に確立されないので、ルーチンはコミット呼び出しを発行するか、作業の論理バッチが処理されるまでコミットを延期できます。 作業のバッチをコミットすると、最後の同期点以降に呼び出されたすべてのコールバック関数に関するメッセージがコミットされます。
  3. CICS LINK または CICS START によって呼び出されるプログラムは、チャネル・コンテナーという名前付きオブジェクトにより、CICS サービスを使用してパラメーターを取り出します。 コンテナー名は、パラメーター名と同じです。 詳しくは、CICS の資料を参照してください。
  4. コールバック・ルーチンは MQDISC 呼び出しを発行できますが、そのルーチン独自の接続では発行しません。 例えば、コールバック・ルーチンは、接続を確立している場合、その接続を切断することもできます。
  5. 一般的には、コールバック・ルーチンは、毎回同じスレッドから呼び出されることに依存できません。 必要な場合は、接続の開始時に MQCTLO_THREAD_AFFINITY を使用してください。
  6. コールバック・ルーチンがゼロ以外の理由コードを受け取る場合は、該当するアクションを取らなければなりません。
  7. MQCB_FUNCTION は、 IMS アダプター内ではサポートされません。