[ 
https://issues.apache.org/jira/browse/SYNCOPE-606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francesco Chicchiriccò closed SYNCOPE-606.
------------------------------------------
       Resolution: Not a Problem
    Fix Version/s:     (was: 1.2.1)
                       (was: 1.3.0)

Hi [~ancoron], thanks for your report.

As for [OpenJPA 
documentation|http://ci.apache.org/projects/openjpa/trunk/docbook/manual/ref_guide_dbsetup_thirdparty.html#ref_guide_dbsetup_thirdparty_enlist]
 you need to set {{openjpa.ConnectionFactoryMode}} to {{managed}} when using an 
external (e.g. managed by the application server) XA datasource.

Syncope is set for *not* using XA datasource, but plain datasource, even if 
managed by the application server.

Some additional notes from OpenJPA:
 # OpenJPA can only use managed DataSources when it is also integrating with 
the application server's managed transactions (and Syncope uses its own 
internal, Spring-managed, transaction manager)
 # when using a managed DataSource, you should also configure a second 
unmanaged DataSource that OpenJPA can use to perform tasks that are independent 
of the global transaction; the most common of these tasks is updating the 
sequence table OpenJPA uses to generate unique primary key values for your 
datastore identity objects (but Syncope only defines a single datasource for 
all operations)

FYI, we provide specific [integration tests running on 
PostgreSQL|http://syncope.apache.org/building.html#PostgreSQL] and everything 
is running fine - even though the datasource is provided by Syncope via Spring, 
not by Tomcat.

My guess is that these depend on the way how you have configured Tomcat's 
datasource.
Anyway, if the provided workaround is working for you I'd say it is worth 
adding a note on [the relevant wiki 
page|https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+in+real+environments].

> Cannot commit when autoCommit is enabled
> ----------------------------------------
>
>                 Key: SYNCOPE-606
>                 URL: https://issues.apache.org/jira/browse/SYNCOPE-606
>             Project: Syncope
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.2.0
>         Environment: Ubuntu 14.04 LTS
> PostgreSQL 9.3.5
> PostgreSQL JDBC driver 9.2-1002
>            Reporter: Ancoron Luciferis
>
> After setting up the system according to the documentation for Debian-based 
> systems, setting up an LDAP resource and creating a synchronization task, 
> whenever I try to access the Tasks page, I get the following exception in the 
> {{core-rest.log}} file:
> {noformat}
> 12:36:10.533 ERROR 
> org.apache.syncope.core.rest.utils.RestServiceExceptionMapper - Exception 
> thrown by REST method: Cannot commit when autoCommit is enabled.; nested 
> exception is <openjpa-2.3.0-r422266:1540826 fatal general error> 
> org.apache.openjpa.persistence.PersistenceException: Cannot commit when 
> autoCommit is enabled.
> org.springframework.orm.jpa.JpaSystemException: Cannot commit when autoCommit 
> is enabled.; nested exception is <openjpa-2.3.0-r422266:1540826 fatal general 
> error> org.apache.openjpa.persistence.PersistenceException: Cannot commit 
> when autoCommit is enabled.
>         at 
> org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:418)
>  ~[spring-orm-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:122)
>  ~[spring-orm-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:519)
>  ~[spring-orm-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:757)
>  ~[spring-tx-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:726)
>  ~[spring-tx-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:478)
>  ~[spring-tx-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:272)
>  ~[spring-tx-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
>  ~[spring-tx-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>  ~[spring-aop-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64)
>  ~[spring-security-core-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>  ~[spring-aop-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
>  ~[spring-aop-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>  ~[spring-aop-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
>  ~[spring-aop-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.apache.syncope.core.rest.controller.TaskController$$EnhancerBySpringCGLIB$$907506fd.list(<generated>)
>  ~[spring-core-4.0.7.RELEASE.jar:?]
>         at 
> org.apache.syncope.core.services.TaskServiceImpl.list(TaskServiceImpl.java:121)
>  ~[TaskServiceImpl.class:?]
>         at 
> org.apache.syncope.core.services.TaskServiceImpl.list(TaskServiceImpl.java:112)
>  ~[TaskServiceImpl.class:?]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[?:1.7.0_65]
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
> ~[?:1.7.0_65]
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:1.7.0_65]
>         at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_65]
>         at 
> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:181)
>  ~[cxf-core-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:97)
>  ~[cxf-core-3.0.1.jar:3.0.1]
>         at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:200) 
> ~[cxf-rt-frontend-jaxrs-3.0.1.jar:3.0.1]
>         at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:99) 
> ~[cxf-rt-frontend-jaxrs-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
>  ~[cxf-core-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)
>  ~[cxf-core-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
>  ~[cxf-core-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>  ~[cxf-core-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243)
>  ~[cxf-rt-transports-http-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
>  ~[cxf-rt-transports-http-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:197)
>  ~[cxf-rt-transports-http-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)
>  ~[cxf-rt-transports-http-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
>  ~[cxf-rt-transports-http-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
>  ~[cxf-rt-transports-http-3.0.1.jar:3.0.1]
>         at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:211)
>  ~[cxf-rt-transports-http-3.0.1.jar:3.0.1]
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) 
> ~[servlet-api-3.0.jar:?]
>         at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
>  ~[cxf-rt-transports-http-3.0.1.jar:3.0.1]
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>  ~[spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
>  ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE]
>         at 
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
>  ~[spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
>  ~[spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
>  ~[spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>  ~[spring-web-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
> ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
> ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
> ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>  ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
> ~[tomcat-catalina-7.0.52.jar:7.0.52]
>         at 
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
>  ~[tomcat-coyote-7.0.52.jar:7.0.52]
>         at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
>  ~[tomcat-coyote-7.0.52.jar:7.0.52]
>         at 
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
>  ~[tomcat-coyote-7.0.52.jar:7.0.52]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [?:1.7.0_65]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [?:1.7.0_65]
>         at java.lang.Thread.run(Thread.java:745) [?:1.7.0_65]
> Caused by: org.apache.openjpa.persistence.PersistenceException: Cannot commit 
> when autoCommit is enabled.
>         at 
> org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4974) 
> ~[openjpa-jdbc-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4934)
>  ~[openjpa-jdbc-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:134) 
> ~[openjpa-jdbc-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:108) 
> ~[openjpa-jdbc-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:60) 
> ~[openjpa-jdbc-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.commit(JDBCStoreManager.java:204)
>  ~[openjpa-jdbc-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.DelegatingStoreManager.commit(DelegatingStoreManager.java:95)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.datacache.DataCacheStoreManager.commit(DataCacheStoreManager.java:88)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.DelegatingStoreManager.commit(DelegatingStoreManager.java:95)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.BrokerImpl.endStoreManagerTransaction(BrokerImpl.java:1485)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.BrokerImpl.endTransaction(BrokerImpl.java:2384) 
> ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.BrokerImpl.afterCompletion(BrokerImpl.java:2043) 
> ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:94)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1528) 
> ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:933) 
> ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:570)
>  ~[openjpa-persistence-2.3.0.jar:2.3.0]
>         at 
> org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:515)
>  ~[spring-orm-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         ... 82 more
> Caused by: org.postgresql.util.PSQLException: Cannot commit when autoCommit 
> is enabled.
>         at 
> org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:813)
>  ~[postgresql-jdbc4-9.2.jar:?]
>         at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source) ~[?:?]
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:1.7.0_65]
>         at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_65]
>         at 
> org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) 
> ~[tomcat-jdbc-7.0.52.jar:?]
>         at 
> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) 
> ~[tomcat-jdbc-7.0.52.jar:?]
>         at 
> org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:71)
>  ~[tomcat-jdbc-7.0.52.jar:?]
>         at 
> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) 
> ~[tomcat-jdbc-7.0.52.jar:?]
>         at 
> org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:153)
>  ~[tomcat-jdbc-7.0.52.jar:?]
>         at 
> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) 
> ~[tomcat-jdbc-7.0.52.jar:?]
>         at 
> org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:41) 
> ~[tomcat-jdbc-7.0.52.jar:?]
>         at 
> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) 
> ~[tomcat-jdbc-7.0.52.jar:?]
>         at 
> org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80)
>  ~[tomcat-jdbc-7.0.52.jar:?]
>         at com.sun.proxy.$Proxy16.commit(Unknown Source) ~[?:?]
>         at 
> org.apache.openjpa.lib.jdbc.DelegatingConnection.commit(DelegatingConnection.java:175)
>  ~[openjpa-lib-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection.commit(LoggingConnectionDecorator.java:341)
>  ~[openjpa-lib-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.lib.jdbc.DelegatingConnection.commit(DelegatingConnection.java:175)
>  ~[openjpa-lib-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.commit(ConfiguringConnectionDecorator.java:124)
>  ~[openjpa-lib-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.lib.jdbc.DelegatingConnection.commit(DelegatingConnection.java:175)
>  ~[openjpa-lib-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.lib.jdbc.DelegatingConnection.commit(DelegatingConnection.java:175)
>  ~[openjpa-lib-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.commit(JDBCStoreManager.java:198)
>  ~[openjpa-jdbc-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.DelegatingStoreManager.commit(DelegatingStoreManager.java:95)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.datacache.DataCacheStoreManager.commit(DataCacheStoreManager.java:88)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.DelegatingStoreManager.commit(DelegatingStoreManager.java:95)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.BrokerImpl.endStoreManagerTransaction(BrokerImpl.java:1485)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.BrokerImpl.endTransaction(BrokerImpl.java:2384) 
> ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.BrokerImpl.afterCompletion(BrokerImpl.java:2043) 
> ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:94)
>  ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1528) 
> ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:933) 
> ~[openjpa-kernel-2.3.0.jar:2.3.0]
>         at 
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:570)
>  ~[openjpa-persistence-2.3.0.jar:2.3.0]
>         at 
> org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:515)
>  ~[spring-orm-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         ... 82 more
> {noformat}
> \\
> According to several discussions around OpenJPA and auto-commit behavior, it 
> looks to me like for Syncope, OpenJPA treats the JDBC connection factory as 
> being non-managed, otherwise, it would have disabled auto-commit as you can 
> see in 
> [org.apache.openjpa.jdbc.schema.DataSourceFactory|http://svn.apache.org/viewvc/openjpa/tags/2.3.0/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/DataSourceFactory.java?view=markup],
>  lines 214 or 216.
> As a workaround, I added the following OpenJPA configuration property to 
> {{/var/lib/tomcat7/webapps/syncope/WEB-INF/classes/persistenceContextEMFactory.xml}}:
> {code:xml}
> <entry key="openjpa.ConnectionFactoryMode" value="managed"/>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to