分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/OSAS-NIF編

[目次][用語][索引][前へ][次へ]

4.1.1 入力メッセージの編集とアプリケーション名の決定

入力メッセージ編集UOCは,受信した論理メッセージの編集をするUOCです。

論理メッセージをユーザ任意の形式に変換したり,受信した論理メッセージを基にユーザ任意のアプリケーション名を決定したりできます。

TP1/NET/OSAS-NIFは,メッセージの最終セグメント受信後,入力メッセージ編集UOCを起動します。ただし,MCFイベント通知時と,UAPからのシステム内部のアプリケーションプログラム起動時は起動しません。

入力メッセージ編集UOCは,ユーザが作成するUOCのほかに,TP1/NET/OSAS-NIFが提供する標準UOCがあります。標準UOCについては,「(6) 標準UOC」を参照してください。

ユーザは,MCFメイン関数でUOC関数アドレスを設定します。また,必要に応じてMCF通信構成定義(mcftalccn -e)で,メッセージ編集用バッファグループ番号を定義します。

入力メッセージ編集UOCのコーディングについては,「付録C UOCのコーディング例」を参照してください。

<この項の構成>
(1) 入力メッセージの編集
(2) アプリケーション名の決定
(3) UOCエラーリターン処理
(4) UOCパラメタ不正の場合の処理
(5) OpenTP1への組み込み方法
(6) 標準UOC

(1) 入力メッセージの編集

受信したメッセージが格納されている受信バッファおよび定義で指定した編集バッファをリスト形式で引き渡します。UOCでは,これらのバッファを使用して,入力メッセージの編集ができます。

また,UAPに通知するメッセージは,UOCからのリターンコードによって,受信バッファに格納されたものを使用するか,または編集バッファに格納されたものを使用するかを選択できます。

(2) アプリケーション名の決定

該当するMCFに入力メッセージ編集UOCが登録されている場合,論理メッセージの編集と同時にアプリケーション名を決定できます。

TP1/NET/OSAS-NIFは,相手システムからのメッセージのNIFヘッダにあて先名称としてアプリケーション名が設定されている場合は,その情報をJISコードに変換してUOCへ渡します。その情報は,プロトコル個別インタフェース領域アドレスのあて先名称領域(dcmnom_uocのappname)に設定されます。ただし,アプリケーション名に英数字(大文字)以外の文字が設定されている場合,「\0」をUOCへ渡します。

ユーザが作成するUOCでアプリケーション名を決定する場合,アプリケーション名の形式は,アプリケーション名格納領域の先頭から「\0」の手前までに1から8バイトの英数字を設定します。先頭から9バイト目までに「\0」がない場合,アプリケーション名を不正とし,不正アプリケーション名検出通知イベント(ERREVT1)を通知します。

UOCでアプリケーション名を決定しない場合,メッセージの先頭8バイト以内をアプリケーション名として使用します。ただし,この場合はJISコードへの変換はしません。また,先頭から9バイト目までに空白がない場合,アプリケーション名を不正とし,不正アプリケーション名検出通知イベント(ERREVT1)を通知します。

アプリケーション名の決定の処理を次の図に示します。

図4-1 アプリケーション名の決定の処理

[図データ]

(3) UOCエラーリターン処理

UOCからDCMCF_UOC_MSG_NGでリターンした場合,TP1/NET/OSAS-NIFは相手システムに受信拒否を送信し,該当する論理端末を閉塞します。なお,このときMCFはメッセージログを出力し,障害通知イベント(CERREVT)を通知します。

UOCで障害を検出し,エラー処理UAPを起動したい場合は,ユーザ任意のエラー処理をするUAPのアプリケーション名を設定します。また,MCFには正常リターンします。

(4) UOCパラメタ不正の場合の処理

UOCで設定した値に不正があった場合,MCFはメッセージログを出力し,障害通知イベント(CERREVT)を通知します。

(5) OpenTP1への組み込み方法

MCFメイン関数で,作成したUOCの関数アドレスを指定します。入力メッセージ編集UOCの関数アドレスは任意に決められます。UOCのオブジェクトファイルは,MCFメイン関数を翻訳・結合すると,TP1/NET/OSAS-NIFの実行形式ファイルに結合されて実行できる状態になります。MCFメイン関数の詳細については,「7.2 MCFメイン関数の作成」を参照してください。

(6) 標準UOC

TP1/NET/OSAS-NIFは,アプリケーション名を決定するための標準UOCを提供しています。ユーザは,MCFメイン関数に標準UOCのアドレスを指定すると,使用できます。関数名を次に示します。

関数名:dc_mcf_stduoc_msgin

標準UOCの処理の概要を次の図に示します。

図4-2 標準UOCの処理の概要

[図データ]