2.2.1 常設コネクションの確立・解放
CUPはdc_clt_connect_s関数でサーバのクライアント拡張サービスに常設コネクションの確立を要求します。確立要求を受け付けた受け付けプロセスは,常設コネクション確立要求をCUP実行プロセスに渡します。CUPが,CUP実行プロセスから常設コネクションの確立応答のメッセージを受信した時点で,CUPとCUP実行プロセスの間に常設コネクションが確立されます。
CUPとCUP実行プロセスは1:1に対応します。一つのOpenTP1ノードで同時に処理を受け付けられるCUPの最大数は,CUP実行プロセスの最大プロセス数(クライアントサービス定義 cup_parallel_countの指定)と同じです。
常設コネクションを確立するノードは,ユーザ認証の有無によって次のようになります。ユーザ認証機能については,「2.1 ユーザ認証機能」を参照してください。
- ユーザ認証を行う場合
-
ユーザ認証に成功したOpenTP1ノードです。
- ユーザ認証を抑止する場合
-
dc_clt_cltin_s関数の引数target_hostに指定したOpenTP1ノード,またはクライアント環境定義DCHOSTオペランドに指定したOpenTP1ノードです。両方指定した場合,dc_clt_cltin_s関数の引数target_hostに指定したノードが優先されます。
なお,ユーザ認証を抑止し,dc_clt_cltin_s関数の引数target_hostにNULLを指定,かつクライアント環境定義DCHOSTオペランドの指定を省略した場合,常設コネクションの確立に失敗します。
dc_clt_disconnect_s関数で常設コネクションを解放するまで,メッセージの送受信には常設コネクションを使用します。ただし,何らかの障害が発生した場合,常設コネクションは解放されます。
常設コネクションの確立・解放処理を次の図に示します。