MQSETMP - メッセージ・プロパティーの設定

MQSETMP 呼び出しを使用して、メッセージ・ハンドルのプロパティーを設定したり変更したりします。

構文

MQSETMP(HconnHmsgSetPropOptsNamePropDescTypeValueLengthValueCompcodeReason)

パラメーター

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 でなければなりません。
注: このタイプは、 IBM® COBOL for z/OS®を使用するアプリケーションではサポートされません。
MQTYPE_FLOAT64
64 ビットの浮動小数点数。 ValueLength は 8 でなければなりません。
注: このタイプは、 IBM COBOL for z/OSを使用するアプリケーションではサポートされません。
MQTYPE_STRING
文字ストリング。 ValueLength はゼロ以上または特殊値 MQVL_NULL_TERMINATED でなければなりません。
MQTYPE_NULL
プロパティーは存在しますがヌル値です。 ValueLength はゼロでなければなりません。
ValueLength
タイプ: MQLONG - 入力

Value パラメーターのプロパティー値の長さ (バイト数)。 ヌル値、ストリング、バイト・ストリングの場合のみ、ゼロが有効です。 ゼロは、プロパティーは存在するものの、値に文字またはバイトが入っていないことを示します。

値は、ゼロ以上であるか、Type パラメーターで MQTYPE_STRING が設定されている場合には以下の特殊値でなければなりません。
MQVL_NULL_TERMINATED
値はストリング内で最初に検出されるヌルで区切られます。 ヌルはストリングの一部には含められません。 この値は、MQTYPE_STRING も設定しないと無効になります。
注: MQVL_NULL_TERMINATED が設定されている場合、ストリングを終了するために使用されるヌル文字は Value の文字セットのヌルです。
価値
タイプ: 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