2.1.1 コネクションの確立と解放
SLU - TypeP2では,相手システムとの間に論理的通信路(コネクション)を確立してメッセージを送受信します。コネクションは,SLUTYPE-Pプロトコルのセションに対応します。
- 〈この項の構成〉
(1) コネクションの確立
コネクションの確立には,次の五つがあります。
-
ホストからの要求による確立
-
オンライン開始・再開始時の自動確立
-
運用コマンド入力による手動確立
-
API発行による手動確立
-
INIT-SELF送信制御機能による確立
INIT-SELF送信制御機能の詳細については,「2.1.5 INIT-SELF送信制御」を参照してください。
(a) ホストからの要求による確立
ホスト(相手システム)からコネクションの確立の要求を受ける方法です。
起動種別がホスト起動の場合(コネクション定義(mcftalccn -k)にhostを指定),SLU - TypeP2はホストからの確立要求(BIND)を待ちます。コネクション確立後,すべての論理端末を閉塞解除し,UAPにコネクションの確立(COPNEVT)を通知します。
ホストからの要求による確立を次の図に示します。
(b) オンライン開始・再開始時の自動確立
次の場合,オンラインの開始・再開始時にSLU - TypeP2はホストに対して確立要求を送信します。コネクション確立後,すべての論理端末を閉塞解除し,UAPにコネクションの確立(COPNEVT)を通知します。
-
起動種別が端末起動(コネクション定義(mcftalccn -k)にwsを指定)
-
コネクションの確立方法が自動確立(コネクション定義(mcftalccn -i)にautoを指定)
オンライン開始・再開始時の自動確立を次の図に示します。
コネクション解放後に再確立する場合,運用コマンドを入力するか,APIを発行する必要があります。
(c) 運用コマンド入力による手動確立
起動種別が端末起動の場合(コネクション定義(mcftalccn -k)にwsを指定),運用コマンド(mcftactcn)を入力することで,SLU - TypeP2はホストに対して確立要求を送信します。コネクション確立後,すべての論理端末を閉塞解除し,UAPにコネクションの確立(COPNEVT)を通知します。
運用コマンド入力による手動確立を次の図に示します。
(d) API発行による手動確立
起動種別が端末起動の場合(コネクション定義(mcftalccn -k)にwsを指定),API(dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△'))を発行することで,SLU - TypeP2はホストに対して確立要求を送信します。コネクション確立後,すべての論理端末を閉塞解除し,UAPにコネクションの確立(COPNEVT)を通知します。
API発行による手動確立を次の図に示します。
(2) コネクション確立時のチェック項目
ホストからの要求によってコネクションを確立する場合,SLU - TypeP2はホストから受信した確立要求(BINDコマンド)のパラメタをチェックします。このチェックの結果,エラーが検出されると否定応答(センスコード=0821)が出力されます。否定応答(センスコード=0821)は,次のエラーが検出された場合に出力されます。
-
BIND指令中のセションパラメタが不正の場合
-
2次局側でサポートしていない内容を含んでいる場合
SLU - TypeP2で固有にチェックするパラメタの内容を次の表に示します。
- 注※
-
SLU送信最大RU長とSLU受信最大RU長は,相手システム(ホストシステム)で定義される最大RU長です。これらの値は,自システム(OpenTP1システム)のMCF通信構成定義(mcftalccn)の-r sndrusizと-r rcvrusizの指定値と,次に示す大小関係にある場合に有効となります。
-
自システムの送信最大RU長(-r sndrusiz)の指定値が,ホストシステムで指定されているSLU送信最大RU長以下の場合
-
自システムの受信最大RU長(-r rcvrusiz)の指定値が,ホストシステムで指定されているSLU受信最大RU長以上の場合
-
(3) コネクション確立時の再試行
SLU - TypeP2は,コネクション確立時,コネクション定義の起動種別(mcftalccn -k)に端末起動(ws)が指定された場合,コネクション定義のコネクション確立再試行(mcftalccn -b)で指定された値に基づいてコネクション確立の再試行をします。
コネクション定義の詳細については,「mcftalccn(コネクション定義の開始)」を参照してください。
(4) コネクションの正常解放
コネクションの正常解放には,次の四つがあります。
-
ホストからの正常解放
-
オンライン終了時の正常解放
-
運用コマンド(mcftdctcn)の入力による正常解放
-
API(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))の発行による正常解放
コネクションが正常解放された場合,論理端末は自動的に閉塞され,SLU - TypeP2はUAPにコネクションの解放(CCLSEVT)を通知します。なお,オンライン終了時は,CCLSEVTは通知されません。
コネクションの正常解放は,ユーザ間のデータ送受信が終了したあとに行ってください。
ホストからの正常解放を図2-5に,オンライン終了時の正常解放を図2-6に,運用コマンド入力による正常解放を図2-7に,API発行による正常解放を図2-8に示します。
(5) コネクションの強制解放
コネクションの強制解放には,次の四つがあります。
-
下位障害発生による強制解放
-
運用コマンド(mcftdctcn -f)の入力による強制解放
-
強制解放オプション※を指定したAPI(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))の発行による強制解放
-
バッファ不足などの内部障害による強制解放
- 注※
-
dc_mcf_tdctcn関数の場合,action引数にDCMCFFRCを指定します。
CBLDCMCF('TDCTCN△△')の場合,データ名D1に'1'を指定します。
コネクションが強制解放された場合,論理端末は自動的に閉塞され,SLU - TypeP2はUAPにコネクションの解放(CERREVT)を通知します。下位障害,内部障害などの障害対策については,「9. 障害対策」を参照してください。
下位障害発生による強制解放を図2-9に,運用コマンド入力による強制解放を図2-10に,API発行による強制解放を図2-11に,内部障害による強制解放を図2-12に示します。
- 注※
-
通信管理で発行されます。
- 注※
-
通信管理で発行されます。
(6) コネクション解放後の回復動作
システム定義のコネクション定義の起動種別(mcftalccn -k)に指定するオペランドによって,SLU - TypeP2では解放したコネクションの回復動作が異なります。
コネクション定義の起動種別(mcftalccn -k)の指定内容とSLU - TypeP2の動作を次の表に示します。
-kオプションの指定内容 |
SLU - TypeP2の動作 |
---|---|
host(ホスト起動) |
コネクション解放後,ホストからのコネクション確立要求を待ちます。 |
ws(端末起動) |
コネクション解放後,ユーザからの運用コマンド(mcftactcn)の入力,またはAPI(dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△'))の発行を待ちます。 |
auto(INIT-SELF送信制御) |
「2.1.5 INIT-SELF送信制御」を参照してください。 |
なお,コマンド入力による手動回復なのか,システムによる自動回復なのかを示す回復動作情報は,SLU - TypeP2がCERREVTまたはCCLSEVTに設定します。これらのイベントの種類および詳細については,「5.2 MCFイベントインタフェース」を参照してください。
コネクション定義の起動種別(mcftalccn -k)にホスト起動(host)が指定されたコネクションに対して運用コマンド(mcftactcn)が入力された場合,mcftactcnコマンドはエラーリターンして,メッセージログ(KFCA15342-E)を出力します。API(dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△'))が発行された場合,APIはエラーリターンして,メッセージログ(KFCA11196-W)を出力します。
また,起動種別が端末起動の場合(コネクション定義(mcftalccn -k)にwsを指定),該当するコネクションに対して,次のどちらかの処理が実行されるまで,ホストからのコネクション確立要求は通信管理によって拒否されます。
-
運用コマンド(mcftactcn)が入力される
-
API(dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△'))が発行される