分散トランザクション処理機能 OpenTP1 解説
CUPから,TP1/Client/WまたはTP1/Client/Pのライブラリ関数を使って,OpenTP1のサーバUAP(SPP)へサービスを要求します。
TP1/Client/WまたはTP1/Client/Pを使用する場合は,CUPからトランザクションを開始することもできます。
TP1/Client/WまたはTP1/Client/PとOpenTP1との通信を次の図に示します。
図3-60 TP1/Client/WまたはTP1/Client/PとOpenTP1との通信
Javaアプレット,Javaアプリケーション,またはJavaサーブレットからは,TP1/Client/Jのクラスライブラリを使って,OpenTP1のサーバUAP(SPP)へサービスを要求します。
TP1/Client/JとOpenTP1との通信を次の図に示します。
図3-61 TP1/Client/JとOpenTP1との通信
TP1/Client/WまたはTP1/Client/Pで次に示す機能を使う場合,サーバとなるOpenTP1にはクライアントサービス定義が必要です。
また,TP1/Client/WまたはTP1/Client/PでリモートAPI機能を使用する場合や,TP1/Client/JでOpenTP1のSPPへサービスを要求する場合には,OpenTP1側にrapリスナーサービス定義が必要です。
OpenTP1のサーバUAPから,TP1/Client/WまたはTP1/Client/Pのアプリケーションプログラム(CUP)へUAPが開始したことを通知できます。CUPへは,dc_rpc_cltsend関数でデータを送って,サーバUAPの開始を通知します。この機能を使って,サーバの起動完了を一斉にクライアントへ知らせることができます。
dc_rpc_cltsend関数で通知したデータは,CUPのdc_clt_chained_accept_notification関数,またはdc_clt_accept_notification関数で受け取ります。CUPがデータを受け取ることで,TP1/Client/WまたはTP1/Client/Pはサーバが稼働中であることがわかります。その後,CUPからサーバへサービスを要求します。dc_clt_chained_accept_notification関数,およびdc_clt_accept_notification関数については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。
OpenTP1のサーバUAPからTP1/Client/WまたはTP1/Client/PのCUPへの通信を次の図に示します。
図3-62 OpenTP1のサーバUAPからTP1/Client/WまたはTP1/Client/PのCUPへの通信
トランザクショナルRPC実行プロセス(clttrnd)のソケット用ファイル記述子の最大数は,ユーザサービスデフォルト定義のmax_socket_descriptorsオペランドに指定します。
トランザクショナルRPC実行プロセスのソケット用ファイル記述子の最大数の計算式を次に示します。
↑(トランザクショナルRPC実行プロセスが通信するUAPプロセス+1 +システムサービスプロセス数)/0.8↑
なお,ここに指定した値は,すべてのUAPおよび一部のシステムサーバにも有効になりますので注意してください。
All Rights Reserved. Copyright (C) 2006, 2012, Hitachi, Ltd.