2.2.7 リモートAPI機能を使用したRPC
TP1/Client/Jでは,CUPとTP1/Server間に常設コネクションを確立して,CUPが発行したAPIを,TP1/Server側に転送してTP1/Server側のプロセスで実行できます。このような機能をリモートAPI機能といいます。リモートAPI機能を使うと,ファイアウォールの内側にあるUAPに対しても,サービスを要求できます。ただし,Javaアプレットの場合は,Javaのセキュリティの制約のため,そのJavaアプレットが属するWWWサーバ上のTP1/Serverで起動しているrapサーバとのコネクションしか確立できません。Javaアプレットが属するWWWサーバ上のTP1/Server以外で起動しているrapサーバとコネクションを確立しようとすると,セキュリティマネジャがSecurityExceptionを返します。なお,リモートAPI機能を使用したRPCは,TP1/Serverのほかに,DCCM3およびTMS-4V/SPを使用できます。
リモートAPI機能を使用したサービス要求の流れを次の図に示します。
|
-
TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。
-
openConnectionメソッドを呼び出してTP1/Serverのrapサーバとの間にコネクションを確立する。
-
rpcCallメソッドを呼び出してrapサーバ経由で目的のSPPにサービス要求をする。
rpcCallメソッドは,コネクション確立中に何回でも呼び出せます。
-
closeConnectionメソッドを呼び出してTP1/Serverのrapサーバとのコネクションを解放する。
- 注
-
DCEで管理されているセキュリティ対象サーバに対してrapサーバを使用してサービス要求をすると,ErrSecchkExceptionが返されます。
TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドを指定してリモートAPI機能を使用する場合,システム共通定義にrpc_max_message_sizeオペランドを指定していないTP1/ServerのSPPに対してサービス要求をすると,RPCがエラーリターンします。