Hitachi

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


2.1.5 コネクションの解放

TP1/NET/OSAS-NIFは,コネクションを解放してからシステム間通信を終了します。

コネクションの解放には,正常解放と強制解放があります。

〈この項の構成〉

(1) 正常解放

TP1/NET/OSAS-NIFは,次に示す場合,コネクションを正常解放し,状態通知イベント(CCLSEVT)を通知します。

注※

この場合は状態通知イベントを通知しません。

運用コマンドによるコネクションの正常解放を図2-10に,APIによるコネクションの正常解放を図2-11に,相手システムからの解放要求によるコネクションの正常解放を図2-12に,オンライン正常終了によるコネクションの正常解放を図2-13に示します。

図2‒10 運用コマンドによるコネクションの正常解放

[図データ]

  1. mcftdctcnコマンド(-fオプションなし)を入力します。

  2. TP1/NET/OSAS-NIFは,仕掛り中の送受信メッセージを処理します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。

  3. TP1/NET/OSAS-NIFは,NIFアソシエーション解放要求を送信します。

  4. 相手システムからNIFアソシエーション解放の回答を受信します。

  5. コネクションを解放します。

  6. TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CCLSEVT)を通知します。アプリケーション定義にCCLSEVTが定義されていない場合は,MHPは起動しません。

図2‒11 APIによるコネクションの正常解放

[図データ]

  1. API(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))を発行します。

  2. TP1/NET/OSAS-NIFは,仕掛り中の送受信メッセージを処理します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。

  3. TP1/NET/OSAS-NIFは,NIFアソシエーション解放要求を送信します。

  4. 相手システムからNIFアソシエーション解放の回答を受信します。

  5. コネクションを解放します。

  6. TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CCLSEVT)を通知します。アプリケーション定義にCCLSEVTが定義されていない場合は,MHPは起動しません。

図2‒12 相手システムからの解放要求によるコネクションの正常解放

[図データ]

  1. 相手システムから,NIFアソシエーション解放要求を受信します。

  2. TP1/NET/OSAS-NIFは,仕掛り中の送受信メッセージを処理します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。

  3. TP1/NET/OSAS-NIFは,NIFアソシエーション解放回答を相手システムへ送信します。

  4. コネクションを解放します。

  5. TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CCLSEVT)を通知します。アプリケーション定義にCCLSEVTが定義されていない場合は,MHPは起動しません。

図2‒13 オンライン正常終了によるコネクションの正常解放

[図データ]

  1. dcstopコマンドを入力します。

  2. TP1/NET/OSAS-NIFは,仕掛り中の送受信メッセージを処理します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。

  3. TP1/NET/OSAS-NIFは,NIFアソシエーション解放要求を相手システムへ送信します。

  4. 相手システムから,NIFアソシエーション解放の回答を受信します。

  5. コネクションを解放します。

  6. TP1/NET/OSAS-NIFは,終了します。

(2) 強制解放

TP1/NET/OSAS-NIFは,次に示す場合,コネクションを強制的に解放し,障害通知イベント(CERREVT)を通知します。

注※1

dc_mcf_tdctcn関数の場合,action引数にDCMCFFRCを指定します。

CBLDCMCF('TDCTCN△△')の場合,データ名D1に'1'を指定します。

注※2

この場合は状態通知イベントを通知しません。

運用コマンドによるコネクションの強制解放を図2-14に,APIによるコネクションの強制解放を図2-15に,相手システムからの強制解放によるコネクションの強制解放を図2-16に示します。

図2‒14 運用コマンドによるコネクションの強制解放

[図データ]

  1. mcftdctcn -fコマンドを入力します。

  2. 仕掛り中の受信メッセージを破棄し,送信処理を中断します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。

  3. TP1/NET/OSAS-NIFは,NIFアソシエーション緊急解放要求を送信します。

  4. コネクションを解放します。

  5. TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CERREVT)を通知します。アプリケーション定義にCERREVTが定義されていない場合は,MHPは起動しません。

図2‒15 APIによるコネクションの強制解放

[図データ]

  1. 強制解放オプションを指定したAPI(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))を発行します。

  2. 仕掛り中の受信メッセージを破棄し,送信処理を中断します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。

  3. TP1/NET/OSAS-NIFは,NIFアソシエーション緊急解放要求を送信します。

  4. コネクションを解放します。

  5. TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CERREVT)を通知します。アプリケーション定義にCERREVTが定義されていない場合は,MHPは起動しません。

図2‒16 相手システムからの強制解放によるコネクションの強制解放

[図データ]

  1. 相手システムから,NIFアソシエーション緊急解放要求を受信します。

  2. 仕掛り中の受信メッセージを破棄し,送信処理を中断します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。

  3. コネクションを解放します。

  4. TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CERREVT)を通知します。アプリケーション定義にCERREVTが定義されていない場合は,MHPは起動しません。

(3) コネクション解放時のメッセージの処理

コネクションの正常解放時に送受信中のメッセージがある場合,TP1/NET/OSAS-NIFは,メッセージの送受信を完了してからコネクションを解放します。

コネクションの強制解放時に送受信中のメッセージがある場合,メッセージの扱いは,論理端末の端末タイプによって異なります。強制解放時の送受信中メッセージの扱いを次の表に示します。

表2‒3 コネクションの強制解放時の送受信中メッセージの扱い

端末タイプ

送信メッセージ

受信メッセージ

送信中断

メッセージの破棄

再確立時の再送

メッセージの破棄

再確立時の再受信

request型

×

request型

(同期型)

×

×

reply型

×

send型

×

receive型

(凡例)

○:処理をします。

×:処理をしません。

△:相手システムに依存します。

−:該当しません。

注※

再送の詳細については,「2.5 再送機能」を参照してください。

(4) コネクションを解放するときの注意事項

コネクションの状態が解放処理中の場合は,オンラインを終了することができません。次のどれかでコネクションを強制解放してから,オンラインを終了してください。

コネクションの状態を確認するときは,次のどれかを行ってください。