| Symfoware(R) Server JDBCドライバユーザーズガイド - FUJITSU - |
目次
索引
![]()
|
第3章 アプリケーションの考え方
3.2 トランザクション
トランザクションのアクセスモードは、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_charc_char from tbl1 where c_int > 100";
ResultSet res = stmt.executeQuery(sSQLSelect);
while(res.next()){
int c_int_data = res.getInt(1);
String c_charc_charc_char_data = res.getString(2);
:
:
:
}
res.close();
stmt.close();
cnct.commit(); |
データ検索中にデータベースの表tbl1が、他のトランザクションに占有排他されていても参照できるように、READ UNCOMMITTEDに変更しています。
JDBCドライバを利用したアプリケーションから、イルシデーションロック機能を使用することができます。イルシデーションロックとは、SQL文単位に読み込んだデータベース資源に対して、占有モードを設定することができる機能です。
目次
索引
![]()
|