3.4.2 メッセージデータの形式
次に示すデータを指定できます。
-
アプリケーションデータの形式(Formatフィールド)
-
文字データの文字セット(CodedCharSetIdフィールド)
-
数値データの形式(Encodingフィールド)
各フィールドについて説明します。
- Format
-
このフィールドは,メッセージの受信側にメッセージ内のアプリケーションデータの形式を示します。
キューマネジャがメッセージを作成するときに,Formatフィールドを使用してメッセージの形式を識別することがあります。例えば,キューマネジャがメッセージを転送できないときに,メッセージをデッドレターキューに登録しますが,そのことを示すためにキューマネジャはメッセージにヘッダ(制御情報を含む)を追加して,Formatフィールドを変更します。
キューマネジャはMQFMT_STRINGのように"MQ"で始まる組み込みフォーマット名を持っています。それで不十分な場合は,ユーザは独自のフォーマットを設定できます。ただし,"MQ"で始まる名称は使用しないでください。
ユーザ独自の文字セットを作成して使用するときには,MQGMO_CONVERTオプションでメッセージを取り出すアプリケーションのために,データ変換をするUOCを記述してください。
- CodedCharSetId
-
このフィールドは,メッセージ内にある文字データの文字セットを定義します。キューマネジャの文字セットを設定したい場合には,このフィールドはMQCCSI_Q_MGRにしてください。
メッセージをキューから取り出すときには,CodedCharSetIdフィールドの値を,アプリケーションで処理できる値と比較してください。二つの値が異なる場合には,メッセージ内の文字データを変換したり,データ変換をするUOCを使用したりしてください。
- Encoding
-
このフィールドは,2進整数,10進パック形式整数,および浮動小数点の数値メッセージデータのマシンコード形式を定義します。これらのデータは通常,キューマネジャが動作する特定のコンピュータの形式にエンコードされます。
メッセージをキューに登録するとき,通常はMQENC_NATIVEをEncodingフィールドに指定します。これはアプリケーションが動作しているコンピュータの形式にメッセージデータをエンコードするということです。
メッセージをキューから取り出すときには,メッセージ記述子にあるEncodingフィールドの値を自コンピュータのMQENC_NATIVEの値と比較してください。二つの値が異なる場合には,メッセージ内の数値データを変換したり,データ変換をするUOCを使用したりしてください。