MQSETMP - メッセージ・プロパティーの設定
MQSETMP 呼び出しを使用して、メッセージ・ハンドルのプロパティーを設定したり変更したりします。
構文
MQSETMP(Hconn、Hmsg、SetPropOpts、Name、PropDesc、Type、ValueLength、Value、Compcode、Reason)
パラメーター
- Hconn
- タイプ: MQHCONN - 入力
このハンドルは、キュー・マネージャーに対する接続を表します。
値は、
Hmsgパラメーターで指定されているメッセージ・ハンドルの作成に使用された接続ハンドルと一致していなければなりません。 MQHC_UNASSOCIATED_HCONN を使用してメッセージ・ハンドルが作成された場合は、メッセージ・ハンドルのプロパティーを設定するスレッド上で有効な接続を確立しなければなりません。確立しないと、呼び出しは理由コード MQRC_CONNECTION_BROKEN で失敗します。 - Hmsg
- タイプ: MQHMSG - 入力
これは変更されるメッセージ・ハンドルです。 値は、前の MQCRTMH 呼び出しで戻されたものです。
- SetPropOpts
- タイプ: MQSMPO - 入力
メッセージ・プロパティーの設定方法を制御します。
この構造を使用すると、アプリケーションで、メッセージ・プロパティーの設定方法を制御するオプションを指定できます。 この構造は、MQSETMP 呼び出しの入力パラメーターです。 詳しくは、 MQSMPO を参照してください。
- 名前
- タイプ: MQCHARV - 入力
これは、設定するプロパティーの名前です。
プロパティー名の使用について詳しくは、「 プロパティー名 」および「 プロパティー名の制約事項 」を参照してください。
- PropDesc
- タイプ: MQPD - 入出力この構造を使用して、以下を含むプロパティーの属性を定義します。
- プロパティーがサポートされていない場合に発生すること
- プロパティーが属しているメッセージ・コンテキスト
- プロパティーがフロー時にコピーされるメッセージ
この構造体について詳しくは、 MQPD を参照してください。
- タイプ
- タイプ: MQLONG - 入力
設定するプロパティーのデータ・タイプ。 これは以下のいずれかです。
- MQTYPE_BOOLEAN
- ブール値。 ValueLength は 4 でなければなりません。
- MQTYPE_BYTE_STRING
- バイト・ストリング。 ValueLength はゼロ以上でなければなりません。
- MQTYPE_INT8
- 8 ビットの符号付き整数。 ValueLength は 1 でなければなりません。
- MQTYPE_INT16
- 16 ビットの符号付き整数。 ValueLength は 2 でなければなりません。
- MQTYPE_INT32
- 32 ビットの符号付き整数。 ValueLength は 4 でなければなりません。
- MQTYPE_INT64
- 64 ビットの符号付き整数。 ValueLength は 8 でなければなりません。
- MQTYPE_FLOAT32
- 32 ビットの浮動小数点数。 ValueLength は 4 でなければなりません。
- MQTYPE_FLOAT64
- 64 ビットの浮動小数点数。 ValueLength は 8 でなければなりません。
- MQTYPE_STRING
- 文字ストリング。 ValueLength はゼロ以上または特殊値 MQVL_NULL_TERMINATED でなければなりません。
- MQTYPE_NULL
- プロパティーは存在しますがヌル値です。 ValueLength はゼロでなければなりません。
- ValueLength
- タイプ: MQLONG - 入力
Value パラメーターのプロパティー値の長さ (バイト数)。 ヌル値、ストリング、バイト・ストリングの場合のみ、ゼロが有効です。 ゼロは、プロパティーは存在するものの、値に文字またはバイトが入っていないことを示します。
値は、ゼロ以上であるか、Type パラメーターで MQTYPE_STRING が設定されている場合には以下の特殊値でなければなりません。- MQVL_NULL_TERMINATED
- 値はストリング内で最初に検出されるヌルで区切られます。 ヌルはストリングの一部には含められません。 この値は、MQTYPE_STRING も設定しないと無効になります。
- 価値
- タイプ: MQBYTExValueLength - 入力
設定するプロパティーの値。 バッファーは、値のデータの性質に適した境界に位置合わせされなければなりません。
C プログラミング言語では、パラメーターは、void を示すポインターとして宣言されます。 つまり、どのタイプのデータのアドレスもパラメーターとして指定できます。
ValueLength がゼロの場合は、Value は参照されません。 この場合、C または System/390 アセンブラーで作成されたプログラムによって渡されるパラメーター・アドレスはヌルのこともあります。
- CompCode
- タイプ: MQLONG - 出力完了コード。以下のいずれかです。
- MQCC_OK
- 正常終了。
- MQCC_FAILED
- 呼び出し失敗。
- 理由 (Reason)
- タイプ: MQLONG - 出力
CompCodeを限定する理由コード。CompCode が MQCC_OK の場合:- MQRC_NONE
- (0, X'000') レポートする理由コードはありません。
CompCode が MQCC_WARNING の場合、次のようになります。
- MQRC_RFH_FORMAT_ERROR
- (2421, X'0975') プロパティーを含む MQRFH2 フォルダーを構文解析できなかった。
CompCode が MQCC_FAILED の場合、次のようになります。- MQRC_ADAPTER_NOT_AVAILABLE
- (2204, X'089C') アダプターが利用できません。
- MQRC_ADAPTER_SERV_LOAD_ERROR
- (2130, X'852') アダプター・サービス・モジュールをロードできません。
- MQRC_ASID_MISMATCH
- (2157, X'86D') 1 次 ASID とホーム ASID が異なっています。
- MQRC_BUFFER_ERROR
- (2004, X'07D4') 値パラメーターが無効である。
- MQRC_BUFFER_LENGTH_ERROR
- (2005, X'07D5') 値長パラメーターが無効である。
- MQRC_CALL_IN_PROGRESS
- (2219, X'08AB') 前の呼び出しが完了する前に MQI 呼び出しが入力された。
- MQRC_HMSG_ERROR
- (2460, X'099C') メッセージ・ハンドル・ポインターが無効。
- MQRC_MSG_HANDLE_IN_USE
- (2499, X'09C3') メッセージ・ハンドルがすでに使用中。
- MQRC_OPTIONS_ERROR
- (2046, X'07FE') オプションが無効であるか、矛盾しています。
- MQRC_PD_ERROR
- (2482, X'09B2') プロパティー記述子の構造体が無効である。
- MQRC_PROPERTY_NAME_ERROR
- (2442, X'098A') プロパティー名が無効である。
- MQRC_PROPERTY_TYPE_ERROR
- (2473, X'09A9') プロパティーのデータ・タイプが無効である。
- MQRC_PROP_NUMBER_FORMAT_ERROR
- (2472, X'09A8') 値データ中に数字フォーマット・エラーが発生した。
- MQRC_SMPO_ERROR
- (2463, X'099F') メッセージ・プロパティー設定オプションの構造が無効である。
- MQRC_SOURCE_CCSID_ERROR
- (2111, X'083F') プロパティー名エンコード文字セット ID が無効である。
- MQRC_STORAGE_NOT_AVAILABLE
- (2071, X'817') ストレージが不足しています。
- MQRC_UNEXPECTED_ERROR
- (2195, X'893') 予期しないエラーが発生しました。
これらのコードについて詳しくは、 メッセージおよび理由コードを参照してください。
C 言語での呼び出し
MQSETMP (Hconn, Hmsg, &SetPropOpts, &Name, &PropDesc, Type,
ValueLength, &Value, &CompCode, &Reason);
MQHCONN Hconn; /* Connection handle */
MQHMSG Hmsg; /* Message handle */
MQSMPO SetPropOpts; /* Options that control the action of MQSETMP */
MQCHARV Name; /* Property name */
MQPD PropDesc; /* Property descriptor */
MQLONG Type; /* Property data type */
MQLONG ValueLength; /* Length of property value in Value */
MQBYTE Value[n]; /* Property value */
MQLONG CompCode; /* Completion code */
MQLONG Reason; /* Reason code qualifying CompCode */
COBOL での呼び出し
CALL 'MQSETMP' USING HCONN, HMSG, SETMSGOPTS, NAME, PROPDESC, TYPE,
VALUELENGTH, VALUE, COMPCODE, REASON.
** Connection handle
01 HCONN PIC S9(9) BINARY.
** Message handle
01 HMSG PIC S9(18) BINARY.
** Options that control the action of MQSETMP
01 SETMSGOPTS.
COPY CMQSMPOV.
** Property name
01 NAME
COPY CMQCHRVV.
** Property descriptor
01 PROPDESC.
COPY CMQPDV.
** Property data type
01 TYPE PIC S9(9) BINARY.
** Length of property value in VALUE
01 VALUELENGTH PIC S9(9) BINARY.
** Property value
01 VALUE PIC X(n).
** Completion code
01 COMPCODE PIC S9(9) BINARY.
** Reason code qualifying COMPCODE
01 REASON PIC S9(9) BINARY.
PL/I での呼び出し
call MQSETMP (Hconn, Hmsg, SetPropOpts, Name, PropDesc, Type, ValueLength,
Value, CompCode, Reason);
dcl Hconn fixed bin(31); /* Connection handle */
dcl Hmsg fixed bin(63); /* Message handle */
dcl SetPropOpts like MQSMPO; /* Options that control the action of MQSETMP */
dcl Name like MQCHARV; /* Property name */
dcl PropDesc like MQPD; /* Property descriptor */
dcl Type fixed bin(31); /* Property data type */
dcl ValueLength fixed bin(31); /* Length of property value in Value */
dcl Value char(n); /* Property value */
dcl CompCode fixed bin(31); /* Completion code */
dcl Reason fixed bin(31); /* Reason code qualifying CompCode */
高水準アセンブラー呼び出し
CALL MQSETMP,(HCONN,HMSG,SETMSGHOPTS,NAME,PROPDESC,TYPE,VALUELENGTH,
VALUE,COMPCODE,REASON)
HCONN DS F Connection handle
HMSG DS D Message handle
SETMSGOPTS CMQSMPOA , Options that control the action of MQSETMP
NAME CMQCHRVA , Property name
PROPDESC CMQPDA , Property descriptor
TYPE DS F Property data type
VALUELENGTH DS F Length of property value in VALUE
VALUE DS CL(n) Property value
COMPCODE DS F Completion code
REASON DS F Reason code qualifying COMPCODE