Symfoware Server 解説書 - FUJITSU -
目次 索引 前ページ次ページ

第4章 Symfoware Serverのアプリケーション開発> 4.3 トランザクションと排他

4.3.1 トランザクション制御

Symfoware Serverでは、データベースの更新の確定は、データ操作(SQL文)の実行ごとに行われるのではなく、COMMIT文により行われます。

トランザクションは、トランザクションモードの設定をSQL文(SET TRANSACTION)で変更することにより制御できます。

トランザクションモードには、以下の2つの機能があります。

トランザクションモードについて、以下に説明します。

■トランザクションアクセスモー

トランザクションアクセスモードは、以下の2種類から実行できるSQL文を設定します。

READ ONLY:
読込み専用モードです。

トランザクション内で参照系のSQL文のみ、実行することができます。

READ WRITE:
更新可能モードです。

トランザクション内で参照系および更新系のSQL文を実行することができます。

■独立性水

複数のトランザクションが同じ資源にアクセスする場合、何も制御を行わないと、データの矛盾が発生してしまいます。独立性水準では、このようなデータ矛盾が起こらないように、あるトランザクションがアクセスしているデータに対し、他のトランザクションによる参照または更新を制御します。

また、他のトランザクションが更新中の資源に対し、自トランザクションが参照または更新できるかを制御します。

独立性水準について、以下に示します。

[表:独立性水準]

独立性水準

トランザクション
保証動作

同時実行性

SERIALIZABLE
(直列可能)

  • 自トランザクションが参照、追加、更新、削除したデータはトランザクションが終了するまで他トランザクションに更新、削除されません。

  • 他トランザクションが参照したデータは更新することができません。

  • 他トランザクションが追加、更新および削除したデータはそのトランザクションが終了するまでアクセスできません。

REPEATABLE READ
(繰返し可能読取)

  • 他トランザクションが参照したデータは更新することができません。ただし、表のある範囲を参照中でも、その検索範囲内にデータを追加することができます。

  • 他トランザクションが追加、更新および削除したデータはそのトランザクションが終了するまでアクセスできません。

READ COMMITTED
(コミット読取)

  • 自トランザクションが参照したデータは、トランザクションが終了しなくても、他トランザクションから更新できます。

  • 自トランザクションが追加、更新、削除したデータはトランザクションが終了するまで他トランザクションに更新、削除されません。

  • 他トランザクションが参照したデータも、そのSQL文が終了すれば、更新することができます。

  • 他トランザクションが追加、更新および削除したデータは、そのトランザクションが終了するまでアクセスできません。

READ UNCOMMITTED
(未コミット読取)

  • 他トランザクションが参照しているデータも更新することができます。

  • 他トランザクションが追加、更新および削除したデータも、参照することができますが、更新、削除することはできません。

表:独立性水準を元に、自トランザクションが参照しているデータを他トランザクションで更新または追加が可能かの制御について、以下に示します。

[図:自トランザクション参照時の他トランザクション制御]

表:独立性水準を元に、他トランザクションが更新しているデータを自トランザクションで参照が可能かの制御について、以下に示します。

[図:他トランザクション更新時の自トランザクション制御]

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

■トランザクション自動回収機能

トランザクション自動回収機能は、長トランザクションのコネクションを監視し、自動回収する機能です。実行パラメタをクライアント用の動作環境ファイル、サーバ用の動作環境ファイルまたはシステム用の動作環境ファイルに指定することができます。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005-2006