vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hi, this is a patch that avoids getting an undeserved PSQLException when setting the transaction isolation level on a connection: --- postgresql-jdbc-8.2-507.src/org/postgresql/jdbc2/AbstractJdbc2Connection.java 2007-12-01 11:17:49.000000000 +0200 +++ src/org/postgresql/jdbc2/AbstractJdbc2Connection.java 2008-01-11 15:26:58.000000000 +0200 @@ -759,6 +759,8 @@ */ public void setTransactionIsolation(int level) throws SQLException { + if (level == getTransactionIsolation()) + return; if (protoConnection.getTransactionState() != ProtocolConnection.TRANSACTION_IDLE) throw new PSQLException(GT.tr("Cannot change transaction isolation level in the middle of a transaction."), PSQLState.ACTIVE_SQL_TRANSACTION); It applies to the case when a connection is reused within a connection pool and some of its properties are automatically reset before the connection is handed to the requesting party. Example: the default DriverManagerConnectionProvider in Hibernate. Regards. ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend |
| ||||
| On Fri, 11 Jan 2008, sulfinu@gmail.com wrote: > this is a patch that avoids getting an undeserved PSQLException when > setting the transaction isolation level on a connection: > > + if (level == getTransactionIsolation()) > + return; Looks reasonable. My only concern is that getTransactionIsolation does a query to check the current isolation level, so we'd be penalizing any callers who were deliberately changing the isoloation level. Kris Jurka ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend |
| Thread Tools | |
| Display Modes | |
| |