Automatischer Festschreibmodus (Autocommit) Die JDBC-Spezifikation erfordert, dass standardmäßig nach jeder Datenänderungsanweisung ein COMMIT ausgeführt wird. Derzeit ist das clientseitige JDBC-Verhalten, die Transaktion festzuschreiben (Autocommit ist TRUE), und das serverseitige Verhalten ist, sie nicht festzuschreiben (Autocommit ist FALSE). Um in clientseitigen und serverseitigen Anwendungen dasselbe Verhalten zu erhalten, können Sie eine Anweisung, wie die folgende, verwenden:
con.setAutoCommit( false ); |
In dieser Anweisung ist con das aktuelle Verbindungsobjekt. Sie könnten auch Autocommit auf TRUE setzen.
Isolationsstufe der Transaktion einstellen Um die Isolationsstufe der Transaktion einzustellen, muss die Anwendung die Connection.setTransactionIsolation-Methode mit einen der folgenden Werte aufrufen.
Verwenden Sie für den SQL Anywhere JDBC 4.0-Treiber Folgendes:
Verwenden Sie für den SQL Anywhere JDBC 3.0-Treiber Folgendes:
Im folgenden Beispiel wird mithilfe des JDBC 4.0-Treibers die Isolationsstufe der Transaktion auf SNAPSHOT gesetzt.
try { connection.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 ); } |
Weitere Hinweise zu den Methoden getTransactionIsolation und setTransactionIsolation finden Sie in der Dokumentation zur java.sql.Connection-Schnittstelle
unter Java.com.
Standardwerte für die Verbindung
Bei der serverseitigen JDBC erstellt nur der erste Aufruf von getConnection( "jdbc:default:connection" )
eine neue Verbindung mit den Standardwerten. Nachfolgende Aufrufe geben einen Wrapper der aktuellen Verbindung mit allen
unveränderten Verbindungseigenschaften zurück. Wenn Sie bei der ersten Verbindungsaufnahme Autocommit auf FALSE setzen, geben
alle nachfolgenden getConnection-Aufrufe innerhalb desselben Java-Codes eine Verbindung mit Autocommit mit dem Wert FALSE
zurück.
Es kann sinnvoll sein, die Verbindungseigenschaften beim Schließen der Verbindung auf die Standardwerte zurücksetzen zu lassen, damit nachfolgende Verbindungen mit Standard-JDBC-Werten eingerichtet werden. Der folgende Code legt dies fest:
Connection con = DriverManager.getConnection("jdbc:default:connection"); boolean oldAutoCommit = con.getAutoCommit(); try { // main body of code here } finally { con.setAutoCommit( oldAutoCommit ); } |
Diese Vorgänge beziehen sich nicht nur auf Autocommit, sondern auch auf andere Vebindungseigenschaften, wie etwa die Isolationsstufe von Transaktionen und den reinen Lesemodus.
Weitere Hinweise zu den Methoden getTransactionIsolation, setTransactionIsolation und isReadOnly finden Sie in der Dokumentation
zur java.sql.Connection-Schnittstelle unter Java.com.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |