Hi, switching for both persistence units the datasource creation to pax-jdbc did the trick and I have now a working solution.
Many thanks. Best Regards Mihael 2015-09-30 15:06 GMT+02:00 Christian Schneider <[email protected]>: > I suspect that you may have not correctly wrapped the XADataSource into a > DataSource that does the resource enlistment. > Take a look at: > > https://ops4j1.jira.com/wiki/display/PAXJDBC/Pooling+and+XA+support+for+DataSourceFactory > > Does it work if you use the pool-xa DataSource? > > Christian > > On 30.09.2015 14:26, Mihael Schmidt wrote: > > Hi, > > I am having JPA/JTA setup for a persistence unit and it works. Now I have > added another service which also needs to persist some data in another > database. I have setup another persistence unit. > > Service1: > > public SalesProspect create(SalesProspect prospect) { > prospect.setCtime(new Date()); > prospect.setMtime(prospect.getCtime()); > > User user = (User) > coordinator.peek().getVariables().get(User.class); > prospect.setCreator(user.getUsername()); > prospect.setModifier(user.getUsername()); > > em.persist(prospect); > logger.debug("Neuen Interessenten {} mit Id {} erstellt.", > prospect.getName(), prospect.getId()); > > eventAdmin.sendEvent(new Event( > DomainEvent.SALESPROSPECT_CREATED.id > <http://domainevent.salesprospect_created.id/>(), new > DomainEventProperties("data", > prospect))); > > return prospect; > } > > Service2: > Receives the event and also uses em.persist(mapping) to persist some other > data (not the data from Service1). The event is processed synchronously on > the same thread. > > Everything seems to work fine. The data is persisted from both services. > But I am getting the following error message: > > > 2015-09-30 11:04:51,188 | ERROR | qtp20630989-67 | Transaction > | 212 - org.apache.aries.transaction.manager - 1.1.1 | Please > correct the integration and supply a NamedXAResource > java.lang.IllegalStateException: Cannot log transactions as > org.postgresql.xa.PGXAConnection@17349c5 is not a NamedXAResource. > at > org.apache.geronimo.transaction.manager.TransactionImpl$TransactionBranch.getResourceName(TransactionImpl.java:776) > at org.apache.aries.transaction.internal.HOWLLog.prepare(HOWLLog.java:262) > at > org.apache.geronimo.transaction.manager.TransactionImpl.internalPrepare(TransactionImpl.java:467) > at > org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:312) > at > org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252) > at Proxy9553675a_ff4b_4fbf_97b5_9deabd4b0454.commit(Unknown Source) > at > org.apache.aries.transaction.TransactionAttribute$4.finish(TransactionAttribute.java:94) > at > org.apache.aries.transaction.TxInterceptorImpl.postCallWithReturn(TxInterceptorImpl.java:85) > at > org.apache.aries.blueprint.proxy.Collaborator.postInvoke(Collaborator.java:105) > at Proxy57c1bed5_d596_4d00_8ce0_6b6325003223.create(Unknown Source) > at Proxy57c1bed5_d596_4d00_8ce0_6b6325003223.create(Unknown Source) > at sdm.rs.crm.SalesProspectResource.create(SalesProspectResource.java:131) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_75] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_75] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_75] > at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_75] > at > org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleResourceMethod(FindResourceMethodHandler.java:151)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:65)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.handlers.OptionsMethodHandler.handleRequest(OptionsMethodHandler.java:46)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:48)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:119)[161:org.amdatu.web.rest.wink:2.0.2] > at > org.amdatu.web.rest.wink.WinkRestServlet.service(WinkRestServlet.java:87)[161:org.amdatu.web.rest.wink:2.0.2] > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[69:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0] > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:69)[84:org.ops4j.pax.web.pax-web-jetty:3.1.4] > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:240)[84:org.ops4j.pax.web.pax-web-jetty:3.1.4] > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:75)[84:org.ops4j.pax.web.pax-web-jetty:3.1.4] > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.Server.handle(Server.java:370)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[75:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > at java.lang.Thread.run(Thread.java:745)[:1.7.0_75] > > Is the problem that I somehow have a nested transaction? > > > Environment: > > Apache Karaf 3.0.3 > OpenJPA 2.2.2 > PostgreSQL Driver: 9.3.0.1100-jdbc41_1 > > Installed Aries Bundles (if important): > karaf@sdm()> list -s -t 1 | grep aries > 9 | Active | 20 | 1.1.0 | org.apache.aries.util > 10 | Active | 20 | 1.0.1 | org.apache.aries.proxy.api > 11 | Active | 20 | 1.0.4 | org.apache.aries.proxy.impl > 12 | Active | 20 | 1.0.1 | org.apache.aries.blueprint.api > 13 | Active | 20 | 1.0.5 | org.apache.aries.blueprint.cm > 14 | Resolved | 20 | 1.0.0 | > org.apache.aries.blueprint.core.compatibility, Hosts: 15 > 15 | Active | 20 | 1.4.2 | org.apache.aries.blueprint.core, Fragments: 14 > 36 | Active | 30 | 1.0.0 | org.apache.aries.quiesce.api > 57 | Active | 30 | 1.1.1 | org.apache.aries.jmx.api > 58 | Active | 30 | 1.1.2 | org.apache.aries.jmx.core > 59 | Active | 30 | 1.1.0 | org.apache.aries.jmx.blueprint.api > 60 | Active | 30 | 1.1.0 | org.apache.aries.jmx.blueprint.core > 61 | Active | 30 | 1.0.0 | org.apache.aries.jmx.whiteboard > 97 | Active | 30 | 1.0.2 | org.apache.aries.jpa.api > 98 | Active | 30 | 1.0.4 | org.apache.aries.jpa.blueprint.aries > 99 | Active | 30 | 1.0.2 | org.apache.aries.jpa.container > 100 | Active | 30 | 1.0.4 | org.apache.aries.jpa.container.context > 115 | Active | 30 | 1.1.0 | org.apache.aries.jndi.api > 116 | Active | 30 | 1.0.0 | org.apache.aries.jndi.core > 117 | Active | 30 | 1.0.0 | org.apache.aries.jndi.rmi > 118 | Active | 30 | 1.1.0 | org.apache.aries.jndi.url > 119 | Active | 30 | 1.0.0 | org.apache.aries.jndi.legacy.support > 211 | Active | 30 | 1.0.1 | org.apache.aries.transaction.blueprint > 212 | Active | 30 | 1.1.1 | org.apache.aries.transaction.manager > > After some more research I think that this is more tied to the transaction > manager than to openjpa (to which I have also posted this, sorry). > > Is this somehow connected to this: > <https://issues.apache.org/jira/browse/GERONIMO-3354> > https://issues.apache.org/jira/browse/GERONIMO-3354 , the error looks > similar. > > Thanx in advance > > > -- > Mihael Schmidt > Software und System-Entwicklung > > Schulz Gebäudeservice GmbH & Co. KG > Dr.-Max-Ilgner-Straße 17 > 32339 Espelkamp > Persönlich haftende Gesellschafterin: > Gebäudereinigung Joachim Schulz > Verwaltungsgesellschaft mbH > Telefon: +49 5772 9100 0 > Telefax: +49 5772 9100 11 > Email: <[email protected]>[email protected] > Internet: <http://www.sgbs.de/>www.sgbs.de > Geschäftsführer: Joachim und Dirk Schulz, Norbert Kosica > Handelsregister Bad Oeynhausen: HRA 5902, HRB 8591 > UST-Id-Nr.: DE 125752702 > > > > -- > Christian Schneiderhttp://www.liquid-reality.de > > Open Source Architecthttp://www.talend.com > > -- Mihael Schmidt Software und System-Entwicklung -- Schulz Gebäudeservice GmbH & Co. KG Dr.-Max-Ilgner-Straße 17 32339 Espelkamp Persönlich haftende Gesellschafterin: Gebäudereinigung Joachim Schulz Verwaltungsgesellschaft mbH Telefon: +49 5772 9100 0 Telefax: +49 5772 9100 11 Email: [email protected] Internet: www.sgbs.de Geschäftsführer: Joachim und Dirk Schulz, Norbert Kosica Handelsregister Bad Oeynhausen: HRA 5902, HRB 8591 UST-Id-Nr.: DE 125752702
