Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成の手引


10.7 制御情報とアプリケーションデータの変換

アプリケーションがメッセージをキューに登録するとき,ローカルキューマネジャは制御情報をメッセージ記述子に追加し,キューマネジャとMCAでメッセージを処理しやすくします。通常は,ローカルシステムの環境の文字セットとマシンコード形式でメッセージヘッダのデータフィールドを作成します。

TP1/Message Queueでは,MQAサービス定義のmqa_local_ccsidオペランドを指定することによって,キューマネジャがメッセージ記述子に設定する文字セットを指定できます。

メッセージをシステム間で移動するとき,必要に応じて,受信側システムで必要な文字セットとマシンコード形式にアプリケーションデータを変換できます。この変換は受信側システムのアプリケーション,または送信側システムのMCAで実行できます。受信側システムでデータ変換がサポートされている場合は,送信側システムで変換してから送信する方法よりも,受信側アプリケーションでアプリケーションデータを変換する方法をお勧めします。

MQGET命令に指定するMQGMO構造体のOptionsフィールドにMQGMO_CONVERTを指定するときにアプリケーションデータは変換されます。このときの条件を次に示します。

MCAでデータ変換を実行する場合には,MQT通信構成定義のmqtalccha定義コマンドの-dオプションのcnvccsidオペランドを指定してください。データ変換に失敗すると,メッセージは送信側キューマネジャのデッドレターキューに登録され,MQDLH構造体のFeedbackフィールドに理由が設定されます。メッセージをデッドレターキューに登録できない場合は,チャネルは終了し,無変換のメッセージが転送キューに残ります。送信側MCAではなく受信側アプリケーションでデータ変換する場合は,これを回避できます。

通常,組み込みフォーマットやデータ変換のUOCは,文字データとして記述されるデータを,メッセージで使用される文字セットから必要な文字セットに変換します。また,数値データとして記述されるデータを必要なマシンコード形式に変換します。

TP1/Message Queueがサポートする文字セットおよびマシンコード形式については,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。