You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@syncope.apache.org by "Francesco Chicchiriccò (JIRA)" <ji...@apache.org> on 2014/11/17 08:08:34 UTC

[jira] [Closed] (SYNCOPE-606) Cannot commit when autoCommit is enabled

     [ 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)