Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/J編


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機能を使用したサービス要求の流れを次の図に示します。

図2‒5 リモートAPI機能を使用したサービス要求の流れ

[図データ]

  1. TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。

  2. openConnectionメソッドを呼び出してTP1/Serverのrapサーバとの間にコネクションを確立する。

  3. rpcCallメソッドを呼び出してrapサーバ経由で目的のSPPにサービス要求をする。

    rpcCallメソッドは,コネクション確立中に何回でも呼び出せます。

  4. closeConnectionメソッドを呼び出してTP1/Serverのrapサーバとのコネクションを解放する。

DCEで管理されているセキュリティ対象サーバに対してrapサーバを使用してサービス要求をすると,ErrSecchkExceptionが返されます。

TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドを指定してリモートAPI機能を使用する場合,システム共通定義にrpc_max_message_sizeオペランドを指定していないTP1/ServerのSPPに対してサービス要求をすると,RPCがエラーリターンします。