Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成の手引


2.2.3 コネクトモード

常設コネクションの管理方法は,コネクションの確立・解放方法によって二つに分けられます。コネクションの確立,解放をOpenTP1が管理する形態をオートコネクトモード,ユーザが管理する形態を非オートコネクトモードといいます。ユーザは常設コネクションをオートコネクトモードで管理するか,非オートコネクトモードで管理するか,rapクライアントのユーザサービス定義で定義します。

〈この項の構成〉

(1) オートコネクトモード

OpenTP1が常設コネクションの確立・解放を管理する形態です。rapクライアントが,ユーザサービスネットワーク定義に-wオプション付きで定義されているサービスグループ名を指定してdc_rpc_call関数を発行した場合に,自動的に常設コネクションを確立します。

ユーザサービスネットワーク定義に定義されているサービスグループにdc_rpc_call関数を発行した時点から,dc_rpc_close関数を発行してRPCを終了するまで常設コネクションを確保します。

オートコネクトモードの概要を次の図に示します。

図2‒26 オートコネクトモードの概要

[図データ]

rapクライアントはrapサーバとの間で設定するコネクション数に上限があり,dc_rpc_call関数の呼び出し時にこのコネクション数の上限を超える場合は,rapクライアントプロセスで使用しているコネクションの中で,最も以前に使われたコネクションを自動的に解放したあと,新たにコネクションを確立します。

ただし,連鎖RPCを実行中のコネクションは,解放の対象とはなりません。このことが原因で解放できるコネクションがない場合は,APIを発行したUAPはダウンします。

(2) 非オートコネクトモード

ユーザが常設コネクションの確立・解放を管理する形態です。ユーザはrapクライアントでコネクションを確立するためにdc_rap_connect関数【CBLDCRAP('CONNECT ')】を発行し,解放するためにdc_rap_disconnect関数【CBLDCRAP('DISCNCT ')】を発行します。rapクライアントが,ユーザサービスネットワーク定義に-wオプション付きで定義されているサービスグループ名を指定してdc_rpc_call関数を発行したときに,ユーザが常設コネクションを確立していない場合,dc_rpc_call関数はエラーリターンします。リターンコードはDCRPCER_PROTOです。

非オートコネクトモードの概要を次の図に示します。

図2‒27 非オートコネクトモードの概要

[図データ]

dc_rap_connect関数発行時に,rapクライアントはrapサーバとの間で設定するコネクション数の上限を超える場合,エラーリターンします。