Spring will take care of setting the autocommit mode to off, I believe. So, I'd take that setting out and see what happens.
On Fri, Sep 19, 2008 at 5:08 PM, ben short <[EMAIL PROTECTED]> wrote: > My configuration turns auto commit off which I need as I perform more > than one operation in my transactions. > > On Fri, Sep 19, 2008 at 10:00 PM, Wes Clark <[EMAIL PROTECTED]> wrote: >> You might check the state of autocommit on the connections you are >> getting from the pool. The Java standard is that autocommit should be >> on, but maybe PostgreSQL behaves differently. I'm not familiar with it. >> If autocommit is off, the "select 1" will implicitly start a >> transaction. Changing the isolation level also requires a commit if not >> in autocommit mode. >> >> -----Original Message----- >> From: ben short [mailto:[EMAIL PROTECTED] >> Sent: Friday, September 19, 2008 1:36 PM >> To: Jakarta Commons Users List >> Subject: [DBCP] BasicDataSource, testOnBorrow and PostgreSQL >> >> Hi, >> >> I'm trying to use the BasicDataSource to pool PostgreSQL connections. >> I'm also using Spring and Hibernate. >> >> My BasicDataSource configuration is as follows.... >> >> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> >> <property name="driverClassName" value="org.postgresql.Driver"/> >> <property name="url" >> value="jdbc:postgresql://127.0.0.1/tyrellcheck?user=sysadmin&passwor >> d=password"/> >> <property name="validationQuery" value="SELECT 1"/> >> <property name="initialSize" value="5"/> >> <property name="maxActive" value="25"/> >> <property name="minIdle" value="5"/> >> <property name="maxIdle" value="5"/> >> <property name="defaultAutoCommit" value="false"/> >> <property name="testOnBorrow" value="true"/> >> </bean> >> >> The problem I have is that springs transaction manager is trying to set >> the transaction isolation based on transactional annotations in my code. >> But I get the following exception thrown. >> >> org.postgresql.util.PSQLException: Cannot change transaction isolation >> level in the middle of a transaction >> >> I have debugged the code and see that when the validateConnection method >> gets called on the PoolableConnectionFactory it executes the validation >> query which starts a transaction, so later on when the springs >> transaction manager tried to set the transaction isolation the exception >> is thrown. >> >> While debugging I called commit on the connection after the validation >> query had been executed and all worked OK. >> >> I believe this to be a bug, should I log it? >> >> Regards >> >> Ben Short >> blog.benshort.co.uk >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
