9.5.1 サービス・ルーチンのトランザクションの暗黙的な定義
構成ファイルのシステム・パラメータAUTOTRANを設定すると、サービス・ルーチンがトランザクション・モードになります。AUTOTRANにYを設定すると、別のプロセスからリクエストを受信したときに、サービス・サブルーチン内でトランザクションが自動的に開始されます。
               
暗黙的にトランザクションを定義する場合は、以下の規則に従います。
- 呼出し側プロセスがトランザクション・モードになっていない場合に、システム・パラメータAUTOTRANがトランザクションを開始するように設定されていると、プロセスが別のプロセスのサービスをリクエストしたときにトランザクションが開始されます
- すでにトランザクション・モードになっているプロセスが別のプロセスのサービスをリクエストした場合、システムは呼出し側のflagsパラメータがTPNOTRANに設定されているかどうかをまず確認します。flags引数にTPNOTRANが設定されていない場合、呼び出されたプロセスは伝達の規則によってトランザクション・モードになります。システムによってAUTOTRANパラメータは確認されません。flags引数にTPNOTRANが設定されている場合、呼び出されたプロセスによって実行されるサービスは、現在のトランザクションに含まれません。つまり、「伝達の規則」は適用されません。システムによってAUTOTRANパラメータが確認されます。- AUTOTRANに- Nが設定されている場合(つまりAUTOTRANが有効になっていない場合)、呼び出されたプロセスはトランザクション・モードになりません。
- AUTOTRANに- Yが設定されている場合、呼び出されたプロセスはトランザクション・モードになります。ただし、新しいトランザクションとして処理されます。
 
ノート:
サービスは自動的にトランザクション・モードにできるので、TPNOTRANフラグが設定されたサービスから、AUTOTRANパラメータが設定されたサービスを呼び出すことができます。そのようなサービスが別のサービスをリクエストした場合、サービスのデータ構造体のflagsメンバーは問合せを実行したときにTPTRANを返します。たとえば、flagsにTPNOTRAN | TPNOREPLYを設定して呼出しを行い、サービスが呼び出されたときに(そのサービスによって)トランザクションが自動的に開始された場合、データ構造体のflagsメンバーは、TPTRAN | TPNOREPLYに設定されます。
               親トピック: グローバル・トランザクションの暗黙的な定義