Atomikos TransactionXaAdapter being registered more than o
kodjobaah Jul 26, 2009 4:11 PMhi all:
I am trying to use atomikos transaction manager. I have extended and configured TransactionManagerLookup class...so that it uses the following class supplied by atomikos to acquire the TransactionManager
TransactionManagerImp.getTransactionManager();
It appears that each time a cache access is made the method "getOrCreateXaAdapter"
on the TransactionTable is invoked and it checks to see if the TransactionXaAdapter exists in the local store, if does not it creates one, stores it and registers it with the transaction manager. But it appears to be failing on subsequent calls...i.e It does not find the TransactionXaAdapter in the local cache so it creates on and tries to register it again with the transaction manager, which throws an exception saying it has already been registered...below is the stack trace....
2009-07-26 17:48:18,696 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (http-8080-1) Execution error: org.infinispan.CacheException: java.lang.IllegalStateException: Attempt to register second resource with name TransactionXaAdapter{modifications=null, look at org.infinispan.transaction.xa.TransactionTable.getOrCreateXaAdapter(TransactionTable.java:101) at org.infinispan.interceptors.TxInterceptor.enlist(TxInterceptor.java:196) at org.infinispan.interceptors.TxInterceptor.enlistReadAndInvokeNext(TxInterceptor.java:165) at org.infinispan.interceptors.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:160) at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:53) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.CacheMgmtInterceptor.visitGetKeyValueCommand(CacheMgmtInterceptor.java:74) at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:53) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:48) at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:34) at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:86) at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:53) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:72) at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:86) at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:53) at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:237) at org.infinispan.CacheDelegate.get(CacheDelegate.java:488) at org.infinispan.CacheDelegate.get(CacheDelegate.java:175) at com.collaboration.web.CollaboratorsCacheUtil.checkForParticipation(CollaboratorsCacheUtil.java:80) at com.collaboration.service.impl.CollaborationServiceImpl.getSessionData(CollaborationServiceImpl.java:491) at com.collaboration.service.impl.CollaborationServiceImpl$$FastClassByCGLIB$$629f9ccf.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:692) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:625) at com.collaboration.service.impl.CollaborationServiceImpl$$EnhancerByCGLIB$$8389ddc6.getSessionData(<generated>) at com.collaboration.bo.impl.UserManagementBOImpl.getSessionData(UserManagementBOImpl.java:533) at com.collaboration.bo.impl.UserManagementBOImpl$$FastClassByCGLIB$$a269225e.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621) at com.collaboration.bo.impl.UserManagementBOImpl$$EnhancerByCGLIB$$680e3aab.getSessionData(<generated>) at com.collaboration.controller.GetSessionDataController.getSessionData(GetSessionDataController.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:626) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:150) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:354) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:342) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:763) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:709) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:613) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:112) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:86) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.session.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:68) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:97) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.authentication.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:89) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilterHttp(AbstractAuthenticationProcessingFilter.java:197) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:102) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilterHttp(SecurityContextPersistenceFilter.java:77) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.authentication.concurrent.ConcurrentSessionFilter.doFilterHttp(ConcurrentSessionFilter.java:102) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:171) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.IllegalStateException: Attempt to register second resource with name TransactionXaAdapter{modifications=null, look at com.atomikos.icatch.system.Configuration.addResource(Unknown Source) at com.atomikos.icatch.jta.TransactionImp.enlistResource(Unknown Source) at org.infinispan.transaction.xa.TransactionTable.getOrCreateXaAdapter(TransactionTable.java:98) ... 97 more 2009-07-26 17:48:19,703 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (http-8080-1) Execution error: org.infinispan.CacheException: java.lang.IllegalStateException: Attempt to register second resource with name TransactionXaAdapter{modifications=null, look at org.infinispan.transaction.xa.TransactionTable.getOrCreateXaAdapter(TransactionTable.java:101) at org.infinispan.interceptors.TxInterceptor.enlist(TxInterceptor.java:196) at org.infinispan.interceptors.TxInterceptor.enlistReadAndInvokeNext(TxInterceptor.java:165) at org.infinispan.interceptors.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:160) at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:53) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.CacheMgmtInterceptor.visitGetKeyValueCommand(CacheMgmtInterceptor.java:74) at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:53) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:48) at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:34) at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:86) at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:53) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:72) at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:86) at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:53) at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:237) at org.infinispan.CacheDelegate.get(CacheDelegate.java:488) at org.infinispan.CacheDelegate.get(CacheDelegate.java:175) at com.collaboration.web.CollaboratorsCacheUtil.checkForParticipation(CollaboratorsCacheUtil.java:80) at com.collaboration.service.impl.CollaborationServiceImpl.getSessionData(CollaborationServiceImpl.java:491) at com.collaboration.service.impl.CollaborationServiceImpl$$FastClassByCGLIB$$629f9ccf.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:692) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:625) at com.collaboration.service.impl.CollaborationServiceImpl$$EnhancerByCGLIB$$8389ddc6.getSessionData(<generated>) at com.collaboration.bo.impl.UserManagementBOImpl.getSessionData(UserManagementBOImpl.java:533) at com.collaboration.bo.impl.UserManagementBOImpl$$FastClassByCGLIB$$a269225e.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621) at com.collaboration.bo.impl.UserManagementBOImpl$$EnhancerByCGLIB$$680e3aab.getSessionData(<generated>) at com.collaboration.controller.GetSessionDataController.getSessionData(GetSessionDataController.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:626) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:150) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:354) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:342) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:763) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:709) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:613) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:112) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:86) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.session.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:68) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:97) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.authentication.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:89) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilterHttp(AbstractAuthenticationProcessingFilter.java:197) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:102) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilterHttp(SecurityContextPersistenceFilter.java:77) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.authentication.concurrent.ConcurrentSessionFilter.doFilterHttp(ConcurrentSessionFilter.java:102) at org.springframework.security.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:44) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:171) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.IllegalStateException: Attempt to register second resource with name TransactionXaAdapter{modifications=null, look at com.atomikos.icatch.system.Configuration.addResource(Unknown Source) at com.atomikos.icatch.jta.TransactionImp.enlistResource(Unknown Source) at org.infinispan.transaction.xa.TransactionTable.getOrCreateXaAdapter(TransactionTable.java:98) ... 97 more
Looking through the other logs it appears that it maybe possible to configure an external transaction table
2009-07-26 19:02:54,997 DEBUG [org.infinispan.factories.ComponentRegistry] (main) Looking in configuration for an instance of class org.infinispan.transaction.xa.TransactionTable that may have been injected from an external source.
Looked through the schema file but could not find any elements that referred to a transaction table. Any assistance would be greatly appreciated...