Symfoware Server アプリケーション開発ガイド(JDBCドライバ編) - FUJITSU - |
目次
索引
![]() ![]() |
第2章 アプリケーションの設計 | > 2.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リファレンス”を参照してください。
目次
索引
![]() ![]() |