Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成リファレンス


MQPMR構造体 − 登録メッセージレコード

MQPMR構造体は,次のフィールドから構成されます。

フィールド(データタイプ)

内容

初期値

MsgId(MQBYTE24型)

メッセージ識別子

なし

CorrelId(MQBYTE24型)

相関識別子

なし

GroupId(MQBYTE24型)

グループ識別子

なし

Feedback(MQLONG型)

報告メッセージ返答コード

なし

AccountingToken(MQBYTE32型)

課金トークン

なし

〈このページの構成〉

概要

目的

MQPMR構造体は,メッセージが配布リストに登録されるときに,単一のあて先にさまざまなメッセージ属性を指定するために使用されます。MQPMR構造体は,MQPUTおよびMQPUT1命令の入出力用の構造体です。

文字セットおよびマシンコード

MQPMR構造体のデータは,ローカルキューマネジャの文字セットおよびマシンコードに従います。それぞれ,キューマネジャのCodedCharSetId属性およびMQENC_NATIVEで指定します。TP1/Message Queue Accessのクライアントアプリケーションの場合,MQPMR構造体はクライアントの文字セットとマシンコードに従います。

使用方法

MQPUTまたはMQPUT1命令に構造体の配列を提供することによって,配布リスト中のあて先キューごとに異なる値を指定できます。入力だけのフィールドや入出力の可能なフィールドがあります。

注意事項

この構造体は,固定のレイアウトがない点で特殊です。構造体中のフィールドはオプションであり,各フィールドの有無はMQPMO構造体のPutMsgRecFieldsフィールドのフラグによって示されます。存在するフィールドは次に示す順序にする必要があります。また,ここにないフィールドは,レコードにありません。

  • MsgId

  • CorrelId

  • GroupId

  • Feedback

  • AccountingToken

MQPMR構造体には固定のレイアウトがないので,サポートするプログラミング言語のCOPYファイルとINCLUDEファイルでの定義の提供はありません。プログラマは,アプリケーションで必要なフィールドを含む宣言をする必要があります。また,PutMsgRecFieldsフィールドのフラグを指定してフィールドがあることを示す必要があります。

フィールド

構造体を構成するフィールドについて,アルファベット順に説明します。

● AccountingToken(MQBYTE32型) 課金トークン

キューに送信されるメッセージに使用される課金トークンです。メッセージの送信先となるキューの名称は,MQOPEN命令またはMQPUT1命令のMQOR構造体の配列中の対応する要素が指定しています。単一のキューに登録するときのMQMD構造体のAccountingTokenフィールドと同様に処理されます。

このフィールドが存在しないとき,MQMD構造体の値が使用されます。

これは入力用のフィールドです。

● CorrelId(MQBYTE24型) 相関識別子

キューに送信されるメッセージに使用される相関識別子です。メッセージの送信先となるキューの名称は,MQOPEN命令またはMQPUT1命令のMQOR構造体の配列中の対応する要素が指定しています。単一のキューに登録するときのMQMD構造体のCorrelIdフィールドと同様に処理されます。

このフィールドがMQPMR構造体レコードに存在しない場合,またはあて先の数よりMQPMR構造体レコードの数が少ない場合,MQMD構造体の値は,CorrelIdフィールドを含むMQPMR構造体レコードを持たないあて先に使用されます。

MQPMO_NEW_CORREL_IDが指定されると,MQPMR構造体レコードの有無に関係なく,一つの新しい相関識別子が生成されます。生成された相関識別子は,配布リストのすべてのあて先に使用されます。これはMQPMO_NEW_MSG_IDが指定されたときとは異なる方法です。詳細については,「MsgIdフィールド」を参照してください。

これは入出力用のフィールドです。

● Feedback(MQLONG型) 報告メッセージ返答コード

キューに送信されるメッセージに使用されるフィードバックコードです。メッセージの送信先となるキューの名称は,MQOPEN命令またはMQPUT1命令のMQOR構造体の配列中の対応する要素が指定しています。単一のキューに登録するときのMQMD構造体のFeedbackフィールドと同様に処理されます。

このフィールドが存在しないときは,MQMD構造体の値が使用されます。

これは入力用のフィールドです。

● GroupId(MQBYTE24型) グループ識別子

キューに送信されるメッセージに使用されるグループ識別子です。メッセージの送信先となるキューの名称は,MQOPEN命令またはMQPUT1命令のMQOR構造体の配列中の対応する要素が指定しています。単一のキューに登録するときのMQMD構造体のGroupIdフィールドと同様に処理されます。

このフィールドがMQPMR構造体レコードに存在しない場合,またはあて先の数よりMQPMR構造体レコードの数が少ない場合,MQMD構造体の値は,GroupIdフィールドを含むMQPMR構造体レコードを持たないあて先に使用されます。この値は,MQPMO構造体のMQPMO_LOGICAL_ORDER中の表で示される処理と同様の処理がされますが,次の相違点があります。

  • 新しいグループ識別子が使用されるとき,キューマネジャは,それぞれのあて先に異なるグループ識別子を生成します。したがって,同じグループ識別子を持つあて先はありません。

  • このフィールドの値が使用されるとき,MQRC_GROUP_ID_ERRORの理由コードで失敗します。

これは入出力用のフィールドです。

● MsgId(MQBYTE24型) メッセージ識別子

キューに送信されるメッセージに使用されるメッセージ識別子です。メッセージの送信先となるキューの名称は,MQOPEN命令またはMQPUT1命令のMQOR構造体の配列中の対応する要素が指定しています。単一のキューに登録するときのMQMD構造体のMsgIdフィールドと同様に処理されます。

このフィールドがMQPMR構造体レコードに存在しない場合,またはあて先の数よりもMQPMR構造体レコードの数が少ない場合,MQMD構造体の値は,MsgIdフィールドを含むMQPMR構造体レコードを持たないあて先に使用されます。その値がMQMI_NONEの場合,新しいメッセージ識別子がそれぞれのあて先に対して生成されます。つまり,おのおののあて先は異なるメッセージ識別子を持っています。

MQPMO_NEW_MSG_IDが指定されると,MQPMR構造体レコードの有無に関係なく,新しいメッセージ識別子が配布リストのすべてのあて先に生成されます。これは,MQPMO_NEW_CORREL_IDが指定されたときとは異なる方法です。詳細については,「CorrelIdフィールド」を参照してください。

これは入出力用のフィールドです。