Hitachi

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


2.1.1 コネクションの確立と解放

TP1/NET/OSI-TPでは,相手システムとの間に論理的通信路(コネクション)を確立してメッセージを送受信します。コネクションは,OSI TPプロトコルのアソシエーションに対応します。

〈この項の構成〉

(1) コネクションの確立

コネクションの種別には,次の二つがあります。

コネクションの種別は,コネクション定義(mcftalccn -t)で指定します。

(a) 発呼型

自システムからコネクションの確立を要求します。コネクションの確立方法には,次の三つがあります。

  • コネクション定義(mcftalccn -i)にautoを指定したことによるオンラインの開始・再開始時の自動確立

  • 運用コマンド(mcftactcn)入力による手動確立

  • API(dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△'))の発行による手動確立

TP1/NET/OSI-TPが相手システムにコネクションの確立を要求したあと,相手システムからのコネクション確立応答を受信すると,コネクションが確立し,メッセージの送受信ができる状態になります。

運用コマンド(mcftactcn)入力時またはオンライン開始時の発呼型の確立方法を,次の図に示します。

図2‒1 コネクションの確立(発呼型(運用コマンド入力時またはオンライン開始時))

[図データ]

  1. オンライン開始・再開始,または運用コマンド(mcftactcn)を入力します。

  2. TP1/NET/OSI-TPは,相手システムにコネクション確立要求を送信します。

  3. 相手システムからコネクション確立応答を受信すると,コネクションが確立します。

  4. TP1/NET/OSI-TPは,コネクションが確立すると状態通知イベント(COPNEVT)を通知します。

API(dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△'))発行時の発呼型の確立方法を,次の図に示します。

図2‒2 コネクションの確立(発呼型(API発行時))

[図データ]

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

  2. TP1/NET/OSI-TPは,相手システムにコネクション確立要求を送信します。

  3. 相手システムからコネクション確立応答を受信すると,コネクションが確立します。

  4. TP1/NET/OSI-TPは,コネクションが確立すると状態通知イベント(COPNEVT)を通知します。

(b) 着呼型

相手システムからのコネクションの確立要求を受け付けます。

オンラインの開始・再開始時に相手システムからのコネクション確立要求を待ちます。確立要求を受けると,TP1/NET/OSI-TPは相手システムにコネクション確立応答を返します。応答を返した時点でコネクションが確立し,メッセージの送受信ができる状態になります。

着呼型のコネクションの場合,TP1/NET/OSI-TPでは,コネクションが解放されたあと,自動的に相手システムからのコネクション確立要求待ちになります。

着呼型の確立方法を,次の図に示します。

図2‒3 コネクションの確立(着呼型)

[図データ]

  1. オンラインの開始・再開始時,相手システムからのコネクション確立要求を待ちます。

  2. 相手システムからコネクション確立要求を受信します。

  3. TP1/NET/OSI-TPは,MCF通信構成定義情報に基づいて,相手システムからのコネクション確立要求の突き合わせをします。

    構成が一致した場合,コネクション確立応答を相手システムに送信します。一致しない場合は,コネクション確立拒否を相手システムに送信します。

  4. TP1/NET/OSI-TPは,コネクションが確立すると状態通知イベント(COPNEVT)を通知します。

注※

定義の突き合わせ項目については,「2.1.9 サービスプリミティブ」を参照してください。

(2) コネクションの正常解放

コネクションの正常解放には,次の四つがあります。

オンライン終了時または運用コマンド(mcftdctcn)入力時の自システムからのコネクションの解放を図2-4に,API(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))発行時の自システムからのコネクションの解放を図2-5に,相手システムからのコネクションの解放を図2-6に示します。

図2‒4 自システムからのコネクションの解放(オンライン終了時または運用コマンド入力時)

[図データ]

  1. オンライン終了,または運用コマンド(mcftdctcn)を入力します。

  2. TP1/NET/OSI-TPは,相手システムにコネクション解放要求を送信します。

  3. 相手システムから,コネクション解放応答を受信します。

  4. TP1/NET/OSI-TPは,コネクション解放応答を受信すると,状態通知イベント(CCLSEVT)を通知します。

注※

状態通知イベントは,オンライン終了時は通知しません。

図2‒5 自システムからのコネクションの解放(API発行時)

[図データ]

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

  2. TP1/NET/OSI-TPは,相手システムにコネクション解放要求を送信します。

  3. 相手システムから,コネクション解放応答を受信します。

  4. TP1/NET/OSI-TPは,コネクション解放応答を受信すると,状態通知イベント(CCLSEVT)を通知します。

図2‒6 相手システムからのコネクションの解放

[図データ]

  1. 相手システムからコネクション解放要求を受信します。

  2. TP1/NET/OSI-TPは,相手システムにコネクション解放応答を送信します。

  3. TP1/NET/OSI-TPは,コネクションが解放すると状態通知イベント(CCLSEVT)を通知します。

(3) コネクションの強制解放

コネクションの強制解放には,次の四つがあります。

注※

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

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

異常検知時または運用コマンド(mcftdctcn -f)入力時の自システムからのコネクションの強制解放を図2-7に,API(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))発行時の自システムからのコネクションの強制解放を図2-8に,相手システムの異常による解放を図2-9に示します。

図2‒7 自システムからのコネクションの強制解放(異常検知時または運用コマンド入力時)

[図データ]

  1. TP1/NET/OSI-TP内部で異常を検出,または運用コマンド(mcftdctcn -f)を入力します。

  2. TP1/NET/OSI-TPは,相手システムにコネクション強制解放を送信します。

  3. TP1/NET/OSI-TPは,コネクションが強制解放すると状態通知イベント(CERREVT)を通知します。

図2‒8 自システムからのコネクションの強制解放(API発行時)

[図データ]

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

  2. TP1/NET/OSI-TPは,相手システムにコネクション強制解放を送信します。

  3. TP1/NET/OSI-TPは,コネクションが強制解放すると,状態通知イベント(CERREVT)を通知します。

図2‒9 相手システムの異常による解放

[図データ]

  1. 相手システムでの異常,および通信回線の障害によって,相手システムからコネクションの強制解放を受信します。

  2. TP1/NET/OSI-TPは,コネクションが強制解放すると状態通知イベント(CERREVT)を通知します。

コネクションに障害が発生すると,コネクションが切断され,メッセージが送受信できない状態になります。コネクションが切断された場合,TP1/NET/OSI-TPは障害通知イベント(CERREVT)によって,障害の発生とコネクションの切断をUAPに通知します。コネクション切断時の障害対策については,「9.2 コネクション障害」を参照してください。

コネクションの切断を,次の図に示します。

図2‒10 コネクションの切断

[図データ]

  1. メッセージ送受信時に障害が発生すると,TP1/NET/OSI-TPがコネクションの切断を検知します。

  2. TP1/NET/OSI-TPは,状態通知イベント(CERREVT)を通知します。