MQ レコード用のオプション・レコード

各 MQ レコードは、5 つのオプション・レコード が関連付けられています。これらのレコードは、MQSeries® への隠れた呼び出しの引数として、EGL で使用されます。

MQ レコードのプロパティーとしてオプション・レコードを指定すると、作業用ストレージ・レコード・パーツ (MQOD など) を typeDef として使用する変数を参照することになります。このパーツは、プロダクトで提供される EGL ファイルの中にあります (『MQSeries のサポート』を参照)。レコード・パーツは、そのまま使用することもできますが、ご自分の EGL ファイルにコピーして、カスタマイズすることもできます。

あるオプション・レコードについて、それが使用中であることを示さないと、EGL は、デフォルトのレコードを作成し、値を割り当てます。これについては、以降のセクションを参照してください。ただし、MQ レコードを使用しないで MQSeries にアクセスしたときは、デフォルトのオプション・レコードは提供されません。

get オプション用レコード

get オプション用レコードは、MQSeries MQGET 呼び出しの引数である、MQSeries Get Message Options (MQGMO) に基づいて作成できます。get オプション用レコードを宣言しない場合、EGL は自動的に MQGMO という名前のデフォルトのレコードを作成します。生成されたプログラムでは、以下のことを行います。
  • データの初期化』の冒頭に記載した値を使用して、get オプション用レコードを初期化する。
  • MQ レコードのプロパティー Include message in transaction を設定したかどうかに応じて、OPTIONS を MQGMO_SYNCPOINT または MQGMO_NO_SYNCPOINT のいずれかに設定する。

put オプション用レコード

put オプション用レコードは、MQSeries MQPUT 呼び出しの引数である、MQSeries Put Message Options (MQPMO) に基づいて作成できます。put オプション用レコードを宣言しない場合、EGL は自動的に MQPMO という名前のデフォルトのレコードを作成します。生成されたプログラムでは、以下のことを行います。
  • データの初期化』の冒頭に記載した値を使用して、put オプション用レコードを初期化する。
  • MQ レコードのプロパティー Include message in transaction を設定したかどうかに応じて、OPTIONS を MQPMO_SYNCPOINT または MQPMO_NO_SYNCPOINT のいずれかに設定する。

open オプション用レコード

open オプション用レコードの内容によって、MQSeries のコマンド MQOPEN または MQCLOSE の呼び出しに使用する Options パラメーターの値が決まります。open オプション用レコード・パーツ (MQOO) が使用可能ですが、このパーツに基づいてレコードを宣言しないと、EGL は、以下のようにして、MQOO という名前のデフォルトのレコードを自動的に作成します。
  • EGL の add 文によって呼び出された MQOPEN で、生成されたプログラムが MQOO.OPTIONS を次のように設定します。
      MQOO_OUTPUT + MQOO_FAIL_IF_QUIESCING
  • メッセージ・キュー・レコードのプロパティーのオプション「入力キューを排他使用で開く (Open input queue for exclusive use)」が有効な場合、EGL の get next 文によって呼び出された MQOPEN で、生成されたプログラムが MQOO.OPTIONS を次のように設定します。
      MQOO_INPUT_EXCLUSIVE + MQOO_FAIL_IF_QUIESCING
  • メッセージ・キュー・レコードのプロパティーのオプション「入力キューを排他使用で開く (Open input queue for exclusive use)」が有効でない 場合、EGL の get next 文によって呼び出された MQOPEN で、生成されたプログラムが MQOO.OPTIONS を次のように設定します。
      MQOO_INPUT_SHARED + MQOO_FAIL_IF_QUIESCING
  • EGL の close 文によって呼び出された MQCLOSE で、生成されたプログラムは MQOO.OPTIONS を次のように設定します。
      MQCO_NONE

メッセージ記述子レコード

メッセージ記述子レコードは、MQGET 呼び出しと MQPUT 呼び出しのパラメーターである、MQSeries Message Descriptor (MQMD) に基づいて作成できます。メッセージ記述子レコードを宣言しない場合、EGL は自動的に MQMD という名前のデフォルトのレコードを作成し、そのレコードを『データの初期化』に記載した値で初期化します。

キュー記述子レコード

キュー記述子レコードは、MQSeries の MQOPEN 呼び出しと MQCLOSE 呼び出しの引数である、MQSeries Object Descriptor (MQOD) に基づいて作成できます。キュー記述子レコードを宣言しない場合、EGL は自動的に MQOD という名前のデフォルトのレコードを作成し、生成されたプログラムは以下のことを行います。
  • データの初期化』の冒頭に記載した値を使用して、キュー記述子レコードを初期化する。
  • 該当レコード内の OBJECTTYPE を MQOT_Q に設定する。
  • システム・ワード record.resourceAssociation で指定されるキュー・マネージャー名を OBJECTMGRNAME に設定する。ただし、record.resourceAssociation がキュー・マネージャー名を参照しない場合、OBJECTQMGRNAME は値を持ちません。
  • record.resourceAssociation 内のキュー名を OBJECTNAME に設定する
フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.