2.3.8 トランザクション処理での注意事項
- 〈この項の構成〉
(1) ユーザサービス定義との関連
トランザクションとして実行中のサービスから,トランザクション属性であることを指定(atomic_updateオペランドにYを指定)したサービスを要求する場合は,次のことに気を付けてください。
-
サーバUAPのユーザサービス定義の最大プロセス数(parallel_countオペランド)は余裕を持った値を指定しておいてください。サーバUAPの処理が終了しても,グローバルトランザクションの同期点処理が完了するまで,ほかのクライアントUAPにはサービスを提供しません(ただし,同期点処理の最適化ができる場合を除きます)。この場合,トランザクションが長時間続くと,その間にサービスを要求した,異なるクライアントUAPの数だけのプロセスを占有することになります。そのため,トランザクションの性能が低下するおそれがあります。
-
ユーザサービス定義のサービス要求滞留値(balance_countオペランド)に指定した値によっては,マルチサーバ機能を使ったユーザサーバでも非常駐プロセスが増えないで,RPCがタイムアウトになる場合があります。balance_countオペランドには,サーバUAPの負荷に応じた最適な値を指定してください。
次の場合には,必ずbalance_countオペランドに0を指定してください。
-
非常駐プロセスだけで構成されるユーザサーバでリカーシブコールをする場合(例えば,parallel_count=0,2の場合)。
-
一つの常駐プロセスと,ほかの非常駐プロセスで構成されるユーザサーバでリカーシブコールをする場合(例えば,parallel_count=1,2の場合)。
-