オートコミットの動作 JDBC の仕様により、デフォルトでは各データ操作文が実行されると、COMMIT が実行されます。現在、クライアント側の JDBC はコミットを実行し (オートコミットは true)、サーバ側の JDBC はコミットを実行しない (オートコミットは false) ように動作します。クライアント側とサーバ側のアプリケーションの両方で同じ動作を実行するには、次のような文を使用します。
con.setAutoCommit( false ); |
この文で、con は現在の接続オブジェクトです。オートコミットを true に設定することもできます。
トランザクションの独立性レベルの設定 トランザクションの独立性レベルを設定するには、次のいずれかの値を使用して、アプリケーションで Connection.setTransactionIsolation メソッドを呼び出す必要があります。
SQL Anywhere JDBC 4.0 ドライバの場合は、次を使用します。
次の例は、JDBC 4.0 ドライバを使用して、トランザクションの独立性レベルを SNAPSHOT に設定します。
try { con.setTransactionIsolation( sybase.jdbc4.sqlanywhere.IConnection.SA_TRANSACTION_SNAPSHOT ); } catch( Exception e ) { System.err.println( "Error! Could not set isolation level" ); System.err.println( e.getMessage() ); printExceptions( (SQLException)e ); } |
getTransactionIsolation と setTransactionIsolation メソッドの詳細については、 http://docs.oracle.com/javase/6/docs/technotes/guides/jdbc/ にある java.sql.Connection インタフェースのマニュアルを参照してください。
接続デフォルト
サーバ側の JDBC からデフォルト値で新しい接続を作成するのは、getConnection( "jdbc:default:connection" )
の最初の呼び出しだけです。後続の呼び出しは、接続プロパティを変更せずに、現在の接続のラッパーを返します。最初の接続でオートコミットを false に設定すると、同じ Java コード内の後続の getConnection 呼び出しでは、オートコミットが
false に設定された接続を返します。
接続を閉じるときに接続プロパティをデフォルト値に復元し、後続の接続を標準の JDBC 値で取得できるようにしたい場合があります。これを行うには、次のコードを実行します。
Connection con = DriverManager.getConnection("jdbc:default:connection"); boolean oldAutoCommit = con.getAutoCommit(); try { // main body of code here } finally { con.setAutoCommit( oldAutoCommit ); } |
ここに記載された説明は、オートコミットだけでなく、トランザクションの独立性レベルや読み込み専用モードなどのその他の接続プロパティにも適用されます。
getTransactionIsolation、setTransactionIsolation、isReadOnly の各メソッドの詳細については、 http://docs.oracle.com/javase/6/docs/technotes/guides/jdbc/ にある java.sql.Connection インタフェースのマニュアルを参照してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |