Thread: "postgresql-9.0-801.jdbc4.jar" Causing "Error committing transaction. Cause: org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled." Exception

Hello list,

JDBC8 returns autocommit = false; which is what I want.

But when I upgrade to JDBC9, I got:
===================================================
### Error committing transaction.  Cause:
org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled.

Is there anything need to be configured if using
"postgresql-9.0-801.jdbc4.jar" to set autocommit = false always?

I use springframework3.0.5 + mybatis3 to setup DB connections:

applicationContext-mybatis.xml

<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName" value="${driverClassName}" />
       <property name="url"             value="${url}"      />
       <property name="username"        value="${username}" />
       <property name="password"        value="${password}" />
</bean>


This codes return autocommit= false for JDBC8; while JDBC9 returns
autocommit=true as default.


Thanks a lot!
Emi
---

. Postgresql8.3

. mybatis-3.0.5-SNAPSHOT.jar
. mybatis-spring-1.0.1-SNAPSHOT.jar
. spring3.0.5

. postgresql-9.0-801.jdbc4.jar


SqlSession sql_session = sqlSessionFactory.openSession(false);
....
sql_session.commit();






On Tue, May 31, 2011 at 2:11 PM, Emi Lu <emilu@encs.concordia.ca> wrote:
> Hello list,
>
> JDBC8 returns autocommit = false; which is what I want.
>
> But when I upgrade to JDBC9, I got:
> ===================================================
> ### Error committing transaction.  Cause:
> org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled.
>
> Is there anything need to be configured if using
> "postgresql-9.0-801.jdbc4.jar" to set autocommit = false always?
>
> I use springframework3.0.5 + mybatis3 to setup DB connections:
>
> applicationContext-mybatis.xml
>
> <bean id="dataSource"
> class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>      <property name="driverClassName" value="${driverClassName}" />
>      <property name="url"             value="${url}"      />
>      <property name="username"        value="${username}" />
>      <property name="password"        value="${password}" />
> </bean>
>
>
> This codes return autocommit= false for JDBC8; while JDBC9 returns
> autocommit=true as default.
>
>
> Thanks a lot!
> Emi
> ---
>
> . Postgresql8.3
>
> . mybatis-3.0.5-SNAPSHOT.jar
> . mybatis-spring-1.0.1-SNAPSHOT.jar
> . spring3.0.5
>
> . postgresql-9.0-801.jdbc4.jar
>
>
> SqlSession sql_session = sqlSessionFactory.openSession(false);
> ....
> sql_session.commit();
>
>
>
>
As far as I know autocommit should be enabled by default in both instances.

Can you get the server logs ?

Dave Cramer

dave.cramer(at)credativ(dot)ca
http://www.credativ.ca