5.1.1 入力メッセージの編集とアプリケーション名の決定
入力メッセージ編集UOCは,受信した論理メッセージの編集をするUOCです。
論理メッセージをユーザ任意の形式に変換したり,受信した論理メッセージを基にユーザ任意のアプリケーション名を決定したりできます。
UOCは,MHPを起動するメッセージのセグメントを受信すると起動します。ただし,MCFイベント発生時と,UAPからのアプリケーションプログラム起動時はUOCは起動しません。
ユーザは,MCFメイン関数でUOC関数アドレスを設定します。また,必要に応じてコネクション定義でメッセージ編集用バッファグループ番号(mcftalccn -e msgbuf)を定義します。
(1) 入力メッセージの編集
受信したメッセージが格納されている受信バッファ,およびコネクション定義で指定した編集バッファを引き渡します。UOCでは,これらのバッファを使用して,入力メッセージの編集ができます。
また,UAPに通知するメッセージのセグメントは,受信バッファ,または編集バッファのどちらかに格納されたものを使用できます。どちらのセグメントを使用するかは,UOCから返されるリターンコードによって選択できます。
(2) アプリケーション名の決定
該当するMCF通信プロセスに入力メッセージ編集UOCが登録されている場合,論理メッセージの受信と同時にアプリケーション名を決定できます。
UOCでアプリケーション名を決定する場合,アプリケーション名の形式は,アプリケーション名格納領域の先頭から,'\0'の手前までの1〜8バイトの識別子です。先頭から9バイト目までに'\0'がないときは,アプリケーション名を不正とし,エラーイベント(ERREVT1)を起動します。
アプリケーション名の決定の処理については,「2.2.5 アプリケーション名の決定」を参照してください。
(3) UOCエラーリターン処理
UOCからDCMCF_UOC_MSG_NGでリターンした場合,コネクションを解放し,障害通知イベント(CERREVT)を通知します。
UOCで障害を検出し,エラー処理UAPを起動したい場合は,ユーザ任意のエラー処理UAPのアプリケーション名を設定します。このとき,MCFにはDCMCF_UOC_MSG_OK,またはDCMCF_UOC_MSG_OK_RCVでリターンします。この場合,MCFは正常なメッセージとして処理するため,受信メッセージの破棄などの障害処理はしません。
(4) UOCパラメタ不正の場合の処理
UOCで設定したパラメタに不正があった場合,コネクションを解放し,障害通知イベント(CERREVT)を通知します。
(5) OpenTP1への組み込み方法
スタート関数(dc_mcf_svstart)を発行するMCFメイン関数に,作成したUOCの関数アドレスを設定します。入力メッセージの編集UOCの関数アドレスは任意に決められます。UOC関数をコンパイルして生成したUOCオブジェクトファイルを,UOC関数を登録したMCFメイン関数と結合して,TP1/NET/OSI-TPの実行形式プログラムを生成します。MCFメイン関数の詳細については,「8.2 MCFメイン関数の作成」を参照してください。