Hitachi

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


2.1.10 コネクションリプレース(サーバ型コネクション)

コネクションリプレースは,相手システムからコネクション確立要求を受け付けた場合,TP1/NET/TCP/IPに割り当て可能な未確立コネクションがなければ,確立状態にある既存のコネクションを切断し,新たなコネクション確立要求を受け付ける機能です。コネクションリプレースを使用しない場合に比べ,相手システムでの障害検出を契機としたコネクションの再確立を迅速に行えます。

コネクションリプレースは,コネクション定義(mcftalccn -h)のchgconnオペランドにreplaceを指定したサーバ型コネクションに対して使用できます。コネクションリプレースを使用する場合の注意事項については,「(4) コネクションリプレースを使用するときの注意事項」を参照してください。

コネクションの切断については,「2.1.9 コネクション障害」を参照してください。

〈この項の構成〉

(1) コネクションリプレースの概要

コネクションリプレースを使用しない場合と使用する場合に分け,相手システムが障害を検出したあとの処理について説明します。

(a) コネクションリプレースを使用しない場合

相手システムがTP1/NET/TCP/IPよりも先に障害を検出し,コネクションの再確立を要求した場合,割り当て可能な未確立コネクションがなければ,コネクション確立要求によって一時的に受け入れた新しいコネクションを解放します。

なお,次の状態になるまで,該当のコネクションは再確立できません。

  • ユーザが障害を検出して運用コマンド(mcftdctcn)を入力するか,またはAPI(dc_mcf_tdctcn関数もしくはCBLDCMCF('TDCTCN△△'))を発行する。

  • TP1/NET/TCP/IPがキープアライブ,または無通信状態監視で障害を検出する。

コネクションリプレースを使用しない場合の処理の流れを次に示します。

図2‒21 相手システムが障害を検出したあとの処理の流れ(コネクションリプレース未使用時)

[図データ]

(b) コネクションリプレースを使用する場合

相手システムがTP1/NET/TCP/IPよりも先に障害を検出し,コネクションの再確立を要求した場合,割り当て可能な未確立コネクションがなければ,確立状態の既存のコネクションは切断されます。その後,TP1/NET/TCP/IPは新たなコネクションの確立要求を受け付け,切断したコネクションを再確立します。

コネクションリプレースを使用した場合の処理の流れを次に示します。

図2‒22 相手システムが障害を検出したあとの処理の流れ(コネクションリプレース使用時)

[図データ]

注※1

論理端末が閉塞解除状態の場合に出力されます。

注※2

論理端末定義(mcftalcle -i)のautoオペランドを指定し,自動的に論理端末を閉塞解除するよう設定している場合に出力されます。

(2) 複数のコネクションを定義した場合のコネクション選択ルール

次の場合,自システムのIPアドレスおよびポート番号が同じコネクションを複数定義できます。

このような複数コネクションに対して,コネクションリプレースを使用できるのは,自システムのIPアドレスおよび自システムのポート番号が同じで,かつそれらすべてのコネクションが確立状態にあるときです。

ポートフリーのコネクションに対してコネクションリプレースを使用する場合,TP1/NET/TCP/IPは自システムのIPアドレスおよびポート番号が同じコネクションの中から,確立状態にあるいちばん古いコネクションをコネクションリプレースの対象として選択します。

(a) ポートフリーのコネクションの場合

ポートフリーのコネクションに対して,コネクションリプレースを使用する場合のコネクション選択ルールを次の図に示します。

図2‒23 コネクション選択ルール(ポートフリーのコネクションの場合)

[図データ]

(b) 相手アドレスチェックを抑止したコネクションの場合

相手アドレスチェックを抑止したコネクションに対してコネクションリプレースを使用する場合には,TP1/NET/TCP/IPは次の両方の条件と一致する,確立状態にあるいちばん古いコネクションをコネクションリプレースの対象として選択します。

  • 接続している既存コネクションの相手アドレスと,確立要求した相手のアドレスが一致

  • 自システムのIPアドレスおよびポート番号が同じ

なお,該当するコネクションがない場合,ポートフリーのコネクションの場合と同様に,自システムのIPアドレスおよびポート番号が同じコネクションの中からいちばん古いコネクションをコネクションリプレース対象として選択します。

相手アドレスチェックを抑止したコネクションに対して,コネクションリプレースを使用する場合のコネクション選択ルールを次の図に示します。

図2‒24 コネクション選択ルール(相手アドレスチェックを抑止したコネクションの場合)

[図データ]

(c) 未確立コネクションが存在する場合

未確立コネクションが存在する場合は,コネクションリプレースを行わないで,未確立コネクションを割り当てます。未確立コネクションが存在する場合のコネクション選択ルールを次に示します。

図2‒25 コネクション選択ルール(未確立コネクションが存在する場合)

[図データ]

(3) コネクション確立UOCを併用する場合

コネクションリプレースとコネクション確立UOCを併用する場合,TP1/NET/TCP/IPがコネクションリプレースを行うコネクションを選択したあと,コネクション確立UOCを呼び出します。コネクション確立UOCには,相手システムのアドレス,ポート番号および自システムのポート番号を通知するので,これらの情報を基に相手システムからの確立要求を受け入れるか,または拒否するかを選択できます。

相手システムからの確立要求を受け入れた場合,コネクション確立UOCを併用しないときと同様に,コネクションリプレースを行います。詳細は,「(1) コネクションリプレースの概要」を参照してください。

コネクション確立要求を受け入れない場合,コネクションリプレースは行いません。また,コネクション確立UOCがエラーリターンした場合,コネクション確立UOCで設定したパラメタが誤っていた場合もコネクションリプレースは行いません。

コネクション確立要求を受け入れない場合の処理の流れを次の図に示します。

図2‒26 コネクション確立UOCとの併用(コネクションの確立要求を拒否した場合)

[図データ]

(4) コネクションリプレースを使用するときの注意事項

コネクションリプレースを使用するときには,次の点に注意してください。