Message のプロパティー
Message オブジェクトのプロパティーの概要と、詳細な参照情報へのリンクを示します。
| プロパティー名 | 説明 |
|---|---|
| JMS_IBM_CHARACTER_SET | XMS クライアントがメッセージを目的の宛先に転送するときに、メッセージの本文中の文字データのストリングが入っているコード化文字セットの ID (CCSID)、またはコード・ページ。 XMSでは、このプロパティーは数値を持ち、CCSID にマップされます。 ただし、このプロパティーは JMS プロパティーに基づいているため、ストリング・タイプ値を持ち、この数値 CCSID を表す Java 文字セットにマップされます。 |
| JMS_IBM_ENCODING | XMS クライアントがメッセージを目的の宛先に転送するときに、メッセージ本体の数値データがどのように表されるか。 |
| JMS_IBM_EXCEPTIONMESSAGE | メッセージが例外の宛先に送信された理由を説明するテキストです。 このプロパティーは読み取り専用です。 |
| JMS_IBM_EXCEPTIONPROBLEMDESTINATION | メッセージが例外の宛先に送信される前に、そのメッセージが存在した宛先の名前です。 |
| JMS_IBM_EXCEPTIONREASON | メッセージが例外の宛先に送信された理由を示す理由コードです。 |
| JMS_IBM_EXCEPTIONTIMESTAMP | メッセージが例外の宛先に送信された時刻です。 |
| JMS_IBM_FEEDBACK | レポート・メッセージの種類を示すコードです。 |
| JMS_IBM_FORMAT | メッセージ内にあるアプリケーション・データの種類です。 |
| JMS_IBM_LAST_MSG_IN_GROUP | メッセージがメッセージ・グループ内の最後のメッセージであるかどうかを示します。 |
| JMS_IBM_MSGTYPE | メッセージのタイプ。 |
| JMS_IBM_PUTAPPLTYPE | メッセージを送信したアプリケーションのタイプです。 |
| JMS_IBM_PUTDATE | メッセージが送信された日付です。 |
| JMS_IBM_PUTTIME | メッセージが送信された時刻です。 |
| JMS_IBM_REPORT_COA | 「到着時の確認」レポート・メッセージを要求し、元のメッセージからのアプリケーション・データをレポート・メッセージにどの程度組み込む必要があるかを指定します。 |
| JMS_IBM_REPORT_COD | 「配信時の確認」レポート・メッセージを要求し、元のメッセージからのアプリケーション・データをレポート・メッセージにどの程度組み込む必要があるかを指定します。 |
| JMS_IBM_REPORT_DISCARD_MSG | メッセージを目的の宛先に配信できない場合に、そのメッセージを廃棄することを要求します。 |
| JMS_IBM_REPORT_EXCEPTION | 例外レポート・メッセージを要求し、元のメッセージからのアプリケーション・データをレポート・メッセージにどの程度組み込む必要があるかを指定します。 |
| JMS_IBM_REPORT_EXPIRATION | 期限満了レポート・メッセージを要求し、元のメッセージからのアプリケーション・データをレポート・メッセージにどの程度組み込む必要があるかを指定します。 |
| JMS_IBM_REPORT_NAN | 否定アクション通知レポート・メッセージを要求します。 |
| JMS_IBM_REPORT_PAN | 肯定アクション通知レポート・メッセージを要求します。 |
| JMS_IBM_REPORT_PASS_CORREL_ID | 任意のレポート・メッセージまたは応答メッセージの相関 ID を元のメッセージの相関 ID と同じにするという要求です。 |
| JMS_IBM_REPORT_PASS_MSG_ID | 任意のレポート・メッセージまたは応答メッセージのメッセージ ID を元のメッセージのメッセージ ID と同じにするという要求です。 |
| JMS_IBM_RETAIN | このプロパティーを設定すると、キュー・マネージャーは、メッセージを保存パブリケーションとして扱うように指定されます。 |
| JMS_IBM_SYSTEM_MESSAGEID | サービス統合バスの内部でメッセージを一意的に識別する ID です。 このプロパティーは読み取り専用です。 |
| JMSX_APPID | メッセージを送信したアプリケーションの名前です。 |
| JMSX_DELIVERY_COUNT | メッセージ配信の試行回数です。 |
| JMSX_GROUPID | メッセージが属するメッセージ・グループの ID です。 |
| JMSX_GROUPSEQ | メッセージ・グループ内にあるメッセージのシーケンス番号です。 |
| JMSX_USERID | メッセージを送信したアプリケーションに関連付けられているユーザー ID です。 |
JMS_IBM_MQMD* プロパティー
IBM® Message Service Client for .NET により、クライアント・アプリケーションは API を使用して MQMD フィールドの読み取り/書き込みを行うことができます。 また、MQ メッセージ・データにアクセスすることもできます。 デフォルトでは、MQMD へのアクセスは無効になっており、Destination のプロパティー XMSC_WMQ_MQMD_WRITE_ENABLED と XMSC_WMQ_MQMD_READ_ENABLED を使用してアプリケーションで明示的に有効にする必要があります。 これらの 2 つのプロパティーは互いに独立しています。
StrucId と Version を除く MQMD フィールドはすべて、追加の Message オブジェクト・プロパティーとして公開され、JMS_IBM_MQMD というプレフィックスが付けられます。
JMS_IBM_MQMD* プロパティーは、上の表で取り上げられている他のプロパティー (JMS_IBM* など) より優先されます。
メッセージの送信
StrucId と Version を除くすべての MQMD フィールドが表されます。 これらのプロパティーは MQMD フィールドのみを参照しています。このフィールドでは、MQMD ヘッダーと MQRFH2 ヘッダーの両方でプロパティーが発生し、MQRFH2 のバージョンは設定も抽出もされません。 JMS_IBM_MQMD_BackoutCount を除き、これらのすべてのプロパティーを設定できます。 JMS_IBM_MQMD_BackoutCount に設定された値はすべて無視されます。
プロパティーが最大長を持っていて、長過ぎる値が提供された場合、その値は切り捨てられます。
特定のプロパティーでは、Destination オブジェクトで XMSC_WMQ_MQMD_MESSAGE_CONTEXT プロパティーも設定する必要があります。 このプロパティーが有効となるためには、アプリケーションが適切なコンテキスト権限を持って実行されていなければなりません。 XMSC_WMQ_MQMD_MESSAGE_CONTEXT を適切な値に設定しないと、プロパティー値は無視されます。 XMSC_WMQ_MQMD_MESSAGE_CONTEXT を適切な値に設定しても、キュー・マネージャーに対して十分なコンテキスト権限がない場合は、例外が発行されます。 XMSC_WMQ_MQMD_MESSAGE_CONTEXT の特定の値が必要なプロパティーは以下のとおりです。
- JMS_IBM_MQMD_UserIdentifier
- JMS_IBM_MQMD_AccountingToken
- JMS_IBM_MQMD_ApplIdentityData
- JMS_IBM_MQMD_PutApplType
- JMS_IBM_MQMD_PutApplName
- JMS_IBM_MQMD_PutDate
- JMS_IBM_MQMD_PutTime
- JMS_IBM_MQMD_ApplOriginData
メッセージの受信
| Property | 説明 | タイプ |
|---|---|---|
| JMS_IBM_MQMD_REPORT | レポート・メッセージのオプション | System.Int32 |
| JMS_IBM_MQMD_MSGTYPE | メッセージ・タイプ | System.Int32 |
| JMS_IBM_MQMD_EXPIRY | メッセージの存続時間 | System.Int32 |
| JMS_IBM_MQMD_FEEDBACK | フィードバックまたは理由コード | System.Int32 |
| JMS_IBM_MQMD_ENCODING | メッセージ・データの数値エンコード | System.Int32 |
| JMS_IBM_MQMD_CODEDCHARSETID | メッセージ・データの文字セット ID | System.Int32 |
| JMS_IBM_MQMD_FORMAT | メッセージ・データの形式名。 | System.String |
| JMS_IBM_MQMD_PRIORITY 注: 0 から 9 の範囲内にない値を JMS_IBM_MQMD_PRIORITY に割り当てると、この値は JMS 仕様に違反します。
|
メッセージ優先順位 | System.Int32 |
| JMS_IBM_MQMD_PERSISTENCE | メッセージの持続性 | System.Int32 |
| JMS_IBM_MQMD_MSGID 注: JMS 仕様では、メッセージ ID は JMS プロバイダーによって設定される必要があり、固有またはヌルでなければならないことが規定されています。 JMS_IBM_MQMD_MSGID に値を割り当てると、この値は JMSMessageID にコピーされます。 つまり、値が JMS プロバイダーによって設定されず、固有の値でなくなる可能性があります。その場合は、JMS 仕様違反になります。
|
メッセージ ID | バイト配列 注: メッセージでバイト配列プロパティーを使用すると、JMS 仕様に違反します。
|
| JMS_IBM_MQMD_CORRELID 注: ストリング「ID:」で始まる値を JMS_IBM_MQMD_CORRELID に割り当てると、この値は JMS 仕様に違反します。
|
相関 ID | バイト配列 注: メッセージでバイト配列プロパティーを使用すると、JMS 仕様に違反します。
|
| JMS_IBM_MQMD_BACKOUTCOUNT | バックアウトのカウンター | System.Int32 |
| JMS_IBM_MQMD_REPLYTOQ | 応答キューの名前 | System.String |
| JMS_IBM_MQMD_REPLYTOQMGR | 応答キュー・マネージャーの名前 | System.String |
| JMS_IBM_MQMD_USERIDENTIFIER | ユーザー ID | System.String |
| JMS_IBM_MQMD_ACCOUNTINGTOKEN | アカウンティング・トークン | バイト配列 注: メッセージでバイト配列プロパティーを使用すると、JMS 仕様に違反します。
|
| JMS_IBM_MQMD_APPLIDENTITYDATA | ID に関連するアプリケーション・データ | System.String |
| JMS_IBM_MQMD_PUTAPPLTYPE | メッセージを書き込んだアプリケーションのタイプ | System.Int32 |
| JMS_IBM_MQMD_PUTAPPLNAME | メッセージを書き込むアプリケーションの名前 | System.String |
| JMS_IBM_MQMD_PUTDATE | メッセージを書き込んだ日付 | System.String |
| JMS_IBM_MQMD_PUTTIME | メッセージを書き込んだ時刻 | System.String |
| JMS_IBM_MQMD_APPLORIGINDATA | 発生元に関係するアプリケーション・データ | System.String |
| JMS_IBM_MQMD_GROUPID | グループ ID | バイト配列 注: メッセージでバイト配列プロパティーを使用すると、JMS 仕様に違反します。
|
| JMS_IBM_MQMD_MSGSEQNUMBER | グループ内のローカル・メッセージのシーケンス番号 | System.Int32 |
| JMS_IBM_MQMD_OFFSET | 論理メッセージの先頭を起点とする、物理メッセージ中のデータのオフセット | System.Int32 |
| JMS_IBM_MQMD_MSGFLAGS | メッセージ・フラグ | System.Int32 |
| JMS_IBM_MQMD_ORIGINALLENGTH | 元のメッセージの長さ | System.Int32 |
詳細はMQMDを参照。
例
この例では、MQMD.UserIdentifier が「JoeBloggs」に設定されたキューまたはトピックにメッセージが書き込まれます。
// Create a ConnectionFactory, connection, session, producer, message
// ...
// Create a destination
// ...
// Enable MQMD write
dest.setBooleanProperty(XMSC_WMQ_MQMD_WRITE_ENABLED,
XMSC_WMQ_MQMD_WRITE_ENABLED_YES);
// Optionally, set a message context if applicable for this MD field
dest.setIntProperty(XMSC_WMQ_MQMD_MESSAGE_CONTEXT,
XMSC_WMQ_MDCTX_SET_IDENTITY_CONTEXT);
// On the message, set property to provide custom UserId
msg.setStringProperty(JMS_IBM_MQMD_USERIDENTIFIER, "JoeBloggs");
// Send the message
// ...JMS_IBM_MQMD_USERIDENTIFIER を設定する前に、XMSC_WMQ_MQMD_MESSAGE_CONTEXT を設定する必要があります。 XMSC_WMQ_MQMD_MESSAGE_CONTEXT の使用の詳細については、Message オブジェクト・プロパティーを参照してください。
同様に、メッセージを受信する前に XMSC_WMQ_MQMD_READ_ENABLED を true に設定してから、メッセージの get メソッド (getStringProperty など) を使用することによって、MQMD フィールドの内容を抽出できます。 受信するプロパティーはすべて読み取り専用です。
この例では、メッセージの MQMD.ApplIdentityData フィールドの値を保持する値フィールドがキューまたはトピックから取得されます。
// Create a ConnectionFactory, connection, session, consumer
// ...
// Create a destination
// ...
// Enable MQMD read
dest.setBooleanProperty(XMSC_WMQ_MQMD_READ_ENABLED, XMSC_WMQ_MQMD_READ_ENABLED_YES);
// Receive a message
// ...
// Get required MQMD field value using a property
System.String value = rcvMsg.getStringProperty(JMS_IBM_MQMD_APPLIDENTITYDATA);