Postgresql and GlassFish - cannot commit when autoCommit is enabled - Mailing list pgsql-general

From Александр Свиридов
Subject Postgresql and GlassFish - cannot commit when autoCommit is enabled
Date
Msg-id 1430982464.252287133@f357.i.mail.ru
Whole thread Raw
Responses Re: Postgresql and GlassFish - cannot commit when autoCommit is enabled  (Bill Moran <wmoran@potentialtech.com>)
List pgsql-general

I have postgresql 9.4 and glassfish 4.1. Besides I use MyBatis inside EJB. Now I try to make select from table and this is what I get:

javax.resource.spi.LocalTransactionException:Cannot commit when autoCommit is enabled.   at com.sun.gjc.spi.LocalTransactionImpl.commit(LocalTransactionImpl.java:112)   at com.sun.enterprise.resource.ConnectorXAResource.commit(ConnectorXAResource.java:124)   at com.sun.enterprise.transaction.JavaEETransactionImpl.commit(JavaEETransactionImpl.java:518)   at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.commit(JavaEETransactionManagerSimplified.java:854)   at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:719)   at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:503)   at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4566)   at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2074)   at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2044)   at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:212)   at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)   at com.sun.proxy.$Proxy312.getLsist(UnknownSource)   at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)   at java.lang.reflect.Method.invoke(Method.java:483)   at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143)   at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:173)   at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)   at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)   at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1549)   at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1425)   at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:930)   at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:213)   at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:694)   at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:496)   at com.sun.corba.ee.impl.transport.ConnectionImpl$1.dispatch(ConnectionImpl.java:195)   at com.sun.corba.ee.impl.transport.ConnectionImpl.read(ConnectionImpl.java:328)   at com.sun.corba.ee.impl.transport.ReaderThreadImpl.doWork(ReaderThreadImpl.java:112)   at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)   at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)Causedby: org.postgresql.util.PSQLException:Cannot commit when autoCommit is enabled.   at org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:811)   at com.sun.gjc.spi.LocalTransactionImpl.commit(LocalTransactionImpl.java:106)...30 more

I even tried the following code:

SqlSession session =ConnectionFactory.getSession().openSession(false);//AUTOCOMMITList list=null;
try{ session.getConnection().setAutoCommit(false);
TempMapper mapper =(TempMapper)session.getMapper(TempMapper.class); list=mapper.readAll();
}catch(SQLException ex){Logger.getLogger(TempBean.class.getName()).log(Level.SEVERE,null, ex);}
finally{ session.close();}

However the result is the same. When I used gf+mysql+mybatis I changed relaxautocommit but for postgresql driver there is no such attribute. How to solve it?

pgsql-general by date:

Previous
From: Jeff Janes
Date:
Subject: Re: finding tables about to be vacuum freezed
Next
From: Tim Clarke
Date:
Subject: Re: detached query?