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&amp;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]

Reply via email to