トランザクション処理を行うと、データ ファイルを更新する一連の処理を、トランザクションと呼ばれる作業の 1 論理単位にグループ化することができます。
               
            
 
            	 
            トランザクションの一部として変更する場合は、次のように処理されます。
 
            	 
             
               		
               - 作業をコミットし、データ ファイルを変更して、その変更を永久的なものにします。
  
               		
               - 作業をロールバックし、データ ファイルから変更を削除します。トランザクションがロールバックされると、Fileshare サーバーは、データ ファイルをトランザクションを開始する前の状態に戻します。
  
               	 
            
 
            	 
            トランザクションでは、複数の Fileshare サーバーで、複数のデータ ファイルを、複数回更新できます。
 
            	 
            次の操作後に、SELECT 文と WITH ROLLBACK 句を定義したファイルで最初に更新操作 (WRITE、REWRITE、DELETE) を実行すると、トランザクションが開始します。
 
            	 
             
               		
               - ファイルを開く
  
               		
               - COMMIT または ROLLBACK 文の実行
  
               	 
            
 
            	 
            また、トランザクションは、次の場合に終了します。
 
            	 
             
               		
               - COMMIT 文の実行時
  
               		
               - ROLLBACK 文の実行時
  
               		
               - トランザクションのタイムアウト時。詳細は、自動レコード ロックのタイムアウトを参照してください。
               
  
               	 
            
 
            	 
            Notes:  
               		
                
               		
                
                  		  
                  - COMMIT 文と ROLLBACK 文を指定すると、各データ ファイルでプログラムがもつすべてのレコードロックを解放できます。これは、ファイルで WITH ROLLBACK 句を指定したかどうかに関係なく発生します。
  
                  		  
                  - COMMIT 文や ROLLBACK 文を処理するために要する時間は、そのトランザクションで実行する更新の回数に正比例します。
  
                  		  
                  - アクティブなトランザクションで使用中のファイルを CLOSE しようとすると、9/100 エラー状態が返され、ファイルは開いたままになります。CLOSE を実行する前には、COMMIT 文または ROLLBACK 文を実行しておく必要があります。
  
                  		  
                  - WITH ROLLBACK 句を使用すると、ファイルで複数のレコードロックが暗黙的に定義されます。
  
                  		
               
 
               	 
              
            	 
             データの一貫性を最高レベルで確保するために、トランザクション処理の前に、次の操作を行うようにしてください。
 
            	 
             
               		
               - ファイルの入出力要求を処理する Fileshare サーバーのデータベース参照ファイルに、トランザクション処理を実行するファイルをすべてインクルードします。詳細は、データベース参照ファイルのメンテナンスを参照してください。
               
  
               		
               - データベース参照ファイルでロールフォワード回復ログファイルを指定します。詳細は、ロールフォワード回復ログ処理を参照してください。
               
  
               	 
            
 
            	 
            レコードロックは、トランザクションで更新するすべてのレコードについて暗黙的に使用します。例えば、プログラムが入力を要求しても、ユーザーが応答しない場合のように、トランザクションが一時的に中断された場合に、レコード ロックがファイルに長時間残ることがあります。このとき、別の
               Fileshare クライアントがロックされたレコードにアクセスしようとしており、なおかつ指定した時間が経過すると、Fileshare サーバーはトランザクションを中止 (ロールバックし) します。このような場合を、トランザクションが Fileshare
               サーバーによりタイムアウトされたといいます。詳細は、自動レコード ロックのタイムアウトを参照してください。
            
 
            	 
            注:  
               		
               トランザクションで実行する更新回数を最小限に抑えると、取得するレコード ロックの数もまた最小に抑えられます。レコード ロックの数を減らすと、データを共有する Fileshare クライアントの間のレコード ロックの競合回数が減り、トランザクション後の
                  COMMIT 文や ROLLBACK 文の実行速度が向上します。