2.1.1 常設コネクションの確立・解放
常設コネクションを確立するには,openConnectionメソッドを呼び出します。接続要求先のrapサーバの位置は,openConnectionメソッドの引数で指定するか,TP1/Client/J環境定義のdchostオペランド,およびdcrapportオペランドで指定します。ただし,CUPとrapリスナー,rapサーバの間にファイアウォールがある場合は,rapサーバの代わりにファイアウォールの位置を指定してください。
openConnectionメソッドが例外を返した場合は,常設コネクションは確立されていません。
TP1/Client/Jが同時に確立できる常設コネクションは,TP1Clientクラスの1つのインスタンスに対して1つのコネクションだけです。TP1/Client/Jの常設コネクションには,管理方式によって次の2つのモードがあります。
- 非オートコネクトモード
-
非オートコネクトモードは,CUPで明示的にopenConnectionメソッドを呼び出してTP1/Serverのrapリスナー,rapサーバとのコネクションを確立します。openConnectionメソッドを呼び出さないでrpcCallメソッドを呼び出した場合,rpcCallメソッドはErrProtoExceptionを返します。コネクションを解放するには,CUPでcloseConnectionメソッドを明示的に呼び出します。
- オートコネクトモード
-
オートコネクトモードは,TP1/Client/Jでコネクションを管理します。TP1/Client/Jは,rpcCallメソッドまたはtrnBeginメソッドが最初に呼び出されたときにコネクションが確立されていないと判断すると,自動的にrapリスナー,rapサーバとの間に常設コネクションを確立します。このため,openConnectionメソッドの呼び出しは不要です。呼び出した場合,ErrProtoExceptionを返します。コネクションの解放はrpcCloseメソッド内で行います。TP1/Client/Jで管理しているコネクションを強制的に解放したい場合は,closeConnectionメソッドを呼び出します。
非オートコネクトモードを使用するか,オートコネクトモードを使用するかはTP1/Client/J環境定義のdcrapautoconnectオペランドで指定するか,またはsetRpcextendメソッドで指定します。
closeConnectionメソッドを呼び出して常設コネクションを解放するまで,メッセージの送受信には常設コネクションが使用されます。ただし,何らかの障害が発生した場合,常設コネクションは解放されます。
常設コネクションの確立・解放処理を次の図に示します。