Hitachi

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


2.2.8 スケジューラダイレクト機能を使用したRPC

スケジューラダイレクト機能を使用したRPCは,Javaアプリケーション,およびJavaサーブレットから実行できるサービス要求です。Javaアプレットのセキュリティの制約があるため,Javaアプレットからは実行できません。

スケジューラダイレクト機能を使用したRPCの流れと,RPCごとにサービス要求先スケジューラを分散させる場合の定義について説明します。

〈この項の構成〉

(1) スケジューラダイレクト機能を使用したRPCの流れ

スケジューラダイレクト機能を使用したRPCを行う場合は,TP1/Client/J環境定義にdcscddirect=Yを指定します。さらに,TP1/Client/J環境定義にdchostおよびdcscdportオペランドを指定するか,またはsetDchostメソッドでscdサーバ(スケジュールサーバ)を指定します。また,rpcCallメソッドを呼び出す前にはrpcOpenメソッドを呼び出す必要があります。CUPの最後にはrpcCloseメソッドを呼び出す必要があります。

スケジューラダイレクト機能を使用したRPCのサービス要求の流れを次の図に示します。

図2‒6 スケジューラダイレクト機能を使用したRPCのサービス要求の流れ

[図データ]

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

  2. rpcOpenメソッドを呼び出してCUPのRPC環境を初期化する。

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

    rpcCallメソッドは,rpcOpenメソッドを呼び出してからrpcCloseメソッドを呼び出すまでの間,何回でも呼び出せます。

  4. rpcCloseメソッドを呼び出してRPC環境を解放する。

注※

rpcCallメソッド内部の処理の流れを次に示します。

  1. dchostオペランドおよびdcscdportオペランドで定義されたscdサーバに対してコネクションを確立する。

  2. scdサーバとのコネクションの確立後,サービス要求を送信しコネクションを切断する。

  3. SPPから応答メッセージ送信用のコネクション確立要求を受信後,コネクションを確立し応答メッセージを受信する。

  4. SPPとの間で確立したコネクションを解放する。

なお,この機能の使用時は,ソケット受信型SPPに対してRPCを発行できません。また,TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドを指定してこの機能を使用した場合,通信先のTP1/Serverノードでエラーが発生することがあります。

(2) RPCごとにサービス要求先スケジューラを分散させる場合の定義

スケジューラダイレクト機能を使用したRPCでは,RPCごとにラウンドロビン方式でサービス要求先スケジューラを切り替え,分散させることができます。RPCごとにサービス要求先スケジューラを分散させる場合は,TP1/Client/J環境定義にdcscdhostchange=Yを指定します。