Symfoware Server アプリケーション開発ガイド(JDBCドライバ編) - FUJITSU -
目次 索引 前ページ次ページ

第2章 アプリケーションの設計> 2.3 トランザクション

2.3.3 トランザクションのアクセスモードと独立性水準

■アクセスモー

トランザクションのアクセスモードは、setReadOnlyメソッドで読み込み専用に変更することができます。

現在のトランザクションのアクセスモードが読み込み専用かどうかは、isReadOnlyメソッドで確認することができます。新しく生成された接続に対するトランザクションのアクセスモードは、更新可能となっています。

トランザクションのアクセスモードは、トランザクションの継続中に変更することはできません。必ずトランザクションが終了している状態で変更してください。

■独立性水

トランザクションの独立性水準は、setTransactionIsolationメソッドで変更することができます。データベースとのコネクションを接続した直後は、独立性水準はSERIALIZABLEとなっています。ただし、行単位の排他を使用している場合、トランザクションの独立性水準にSERIALIZABLEと指定しても、REPEATABLE READとして扱います。

トランザクションの独立性水準は、トランザクションの継続中に変更することはできません。必ずトランザクションが終了している状態で変更してください。

 

データベースのデータを検索するアプリケーションの場合
Connection cnct = DataSource.getConnection();
cnct.setAutoCommit(false);
cnct.setReadOnly(true);
cnct.setTransactionIsolation(java.sql.Connection.TRANSACTION_READ_UNCOMMITTED);

Statement stmt = cnct.createStatement();
String sSQLSelect = "select c_int,c_char from tbl1 where c_int > 100";
ResultSet res = stmt.executeQuery(sSQLSelect);

while(res.next()){
  int c_int_data = res.getInt(1);
  String c_char_data = res.getString(2);
        :
        :
        :
}
res.close();
stmt.close();
cnct.commit();

データ検索中にデータベースの表tbl1が、他のトランザクションに占有排他されていても参照できるように、READ UNCOMMITTEDに変更しています。

■占有モード指

JDBCドライバを利用したアプリケーションから、占有モード指定を使用することができます。占有モード指定とは、SQL文単位に読み込んだデータベース資源に対して、占有方法を設定することができる機能です。

占有モード指定の詳細については、“SQLリファレンス”を参照してください。

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

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