ページの先頭行へ戻る
Symfoware Server V12.3.0 SQLTOOLユーザーズガイド
FUJITSU Software

2.2.7 トランザクション制御

rdbexecsqlコマンドのトランザクション制御は、起動時のcオプションの指定により異なります。

cオプションを指定した場合、通常のアプリケーションと同様にトランザクション制御用のSQL文に従って、トランザクションは制御されます。

cオプションを省略した場合、データ操作のSQL文の実行が正常終了するごとに、自動的にCOMMIT処理が行われます。

クライアント用の動作環境ファイルの実行パラメタ“TRAN_SPEC”について

rdbexecsqlコマンドを実行するときは、クライアント用の動作環境ファイルに“TRAN_SPEC”の指定があっても、クライアント用の動作環境ファイルの指定は無視されます。

トランザクションモードについて

rdbexecsqlコマンドの独立性水準の省略値は、READ UNCOMMITTEDで動作します。SET TRANSACTION文を実行した場合、SET TRANSACTION文の指定に従います。ただし、動作環境ファイルにDSO_LOCKを指定している場合、SERIALIZABLEで動作します。

参考

データベース簡単運用の場合、動作環境ファイルでDSO_LOCKの指定はできません。

rdbexecsqlコマンドを実行する場合は、クライアント用の動作環境ファイルのDEFAULT_ISOLATIONで指定した独立性水準の変更は無視されます。

rdbexecsqlコマンドでSQL文を実行して、SQL文がエラーになったとき、そのトランザクションはロールバックされます。rdbexecsql起動時にcオプションが指定されている場合も指定されていない場合も、SQLエラーとなったトランザクションはロールバックされます。cオプションとロールバックの関係は以下のとおりです。

rdbexecsql起動時にiオプションでSQL文を記載した入力ファイルを指定することができます。この入力ファイルに複数のSQL文が記載される場合、次のように動作します。

入力ファイルに記載されるSQL文は、1行目から最後のSQL文まで順に実行されます。SQL文の実行でエラーとなった場合は、そのトランザクションはロールバックされ、次のSQL文より新たにトランザクションが開始され実行されます。cオプションとロールバックの関係は以下のとおりです。

注意

トランザクション制御文によりトランザクションを終了させないでrdbexecsqlコマンドを終了させた場合、継続していたトランザクションはロールバックされます。
また、rdbexecsqlコマンドでトランザクションが継続中の場合、資源が占有され他のデータベースアクセスアプリケーションと資源排他が発生し動作に支障をきたす状況が起きるので、トランザクションの扱いには十分注意してください。

参照

トランザクション制御についての詳細は、“アプリケーション開発ガイド(共通編)”の“トランザクションと排他制御”を参照してください。

また、データベース簡単運用でのトランザクション制御についての詳細は、“アプリケーション開発ガイド(共通編)”の“トランザクションと排他制御(データベース簡単運用の場合)”を参照してください。