hi,
 
in a previous post with subject "[JBoss-user] "can't enlist" error on second pass through resource adapter" i described a problem i was having with multiple, non-concurrent invocations of a resource adapter via a stateless session bean.  the responder's suggestion (swapping the order of UserTransaction.begin() and ConnectionFactory.getConnection()) got me past this problem.  i still have an outstanding question out as to why this should be required, but we'll leave that as a separate thread.
 
my new problem is that i can't perform multiple, concurrent invocations of the resource adapter.  during the 2nd call to ConnectionFactory.getConnection(), i get the "Can't enlist - already a tx!" error.  in case it's helpful, this is the same error i got before i flipped the order of UserTransaction.begin() and ConnectionFactory.getConnection().
 
i put some comments in the EJB method that invokes the resource adapter to help me track down what state caused the problem.  i also threw in a sleep call to assist as well.
 
same environment as in my previous post, which i'll repeat here:
 
i'm using jboss 3.0.4 with tomcat 4.1.12.  my jdk is 1.3.1.06.  platform is w2kp sp3.  the resource adapter supports XA.  res-sharing-scope is set to Unshareable in the ejb-jar.xml file of the EJB that uses the resource adapter.
 
this use case works fine under oc4j 9.0.3 and TeS 7.3.
 
any assistance would be appreciated.  i'm trying to understand the feasibility/cost of a port of our resource adapter to jboss - an inability to use the resource adapter in a concurrent fashion would likely prevent us from using jboss.
 
thanks.
 
-mike
 
ejb code snippets:
 
  javax.resource.cci.ConnectionFactory conFac = (javax.resource.cci.ConnectionFactory)
      ctx.lookup ("java:comp/env/HPIARM");
  
  System.out.println("getting connection");
  cx = conFac.getConnection();
  System.out.println("got connection");
  tran = (UserTransaction) context.getUserTransaction();
  System.out.println("beginning transaction");
  tran.begin();
  System.out.println("begun transaction");
 
  try {
      Thread.sleep(5000);
  }
  catch (InterruptedException ie) { }
  // do some work on cs via Interaction interface
  
  tran.commit();
  System.out.println("commited transaction");
 
  cx.close();
  System.out.println("closed connection");
 
 
output in server.log:
 
2003-01-10 13:31:18,286 INFO  [STDOUT] getting connection
2003-01-10 13:31:18,286 INFO  [STDOUT] got connection
2003-01-10 13:31:18,286 INFO  [STDOUT] beginning transaction
2003-01-10 13:31:18,306 INFO  [STDOUT] begun transaction
2003-01-10 13:31:18,406 INFO  [STDOUT] getting connection
2003-01-10 13:31:18,436 WARN  [org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener] in Enlisting tx, illegal state: TransactionImpl:XidImpl [FormatId=257, GlobalId=fcmgrove//8, BranchQual=]
2003-01-10 13:31:18,436 ERROR [STDERR] java.lang.IllegalStateException: Can't enlist - already a tx!
2003-01-10 13:31:18,446 ERROR [STDERR]  at org.jboss.resource.connectionmanager.XATxConnectionManager$XAConnectionEventListener.enlist(XATxConnectionManager.java:250)
2003-01-10 13:31:18,446 ERROR [STDERR]  at org.jboss.resource.connectionmanager.XATxConnectionManager.managedConnectionReconnected(XATxConnectionManager.java:202)
2003-01-10 13:31:18,446 ERROR [STDERR]  at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:534)
2003-01-10 13:31:18,466 ERROR [STDERR]  at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:814)
2003-01-10 13:31:18,466 ERROR [STDERR]  at com.hp.ov.activator.resmgr.connector.HPIAConnectionFactory.getConnection(Unknown Source)
2003-01-10 13:31:18,476 ERROR [STDERR]  at com.hp.ov.activator.resmgr.ejb.ServiceActivationBean.executeService(Unknown Source)
2003-01-10 13:31:18,476 ERROR [STDERR]  at java.lang.reflect.Method.invoke(Native Method)
2003-01-10 13:31:18,476 ERROR [STDERR]  at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:660)
2003-01-10 13:31:18,486 ERROR [STDERR]  at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
2003-01-10 13:31:18,486 ERROR [STDERR]  at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107)
2003-01-10 13:31:18,486 ERROR [STDERR]  at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:144)
2003-01-10 13:31:18,496 ERROR [STDERR]  at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62)
2003-01-10 13:31:18,496 ERROR [STDERR]  at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:77)
2003-01-10 13:31:18,496 ERROR [STDERR]  at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
2003-01-10 13:31:18,496 ERROR [STDERR]  at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
2003-01-10 13:31:18,506 ERROR [STDERR]  at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313)
2003-01-10 13:31:18,506 ERROR [STDERR]  at org.jboss.ejb.Container.invoke(Container.java:712)
2003-01-10 13:31:18,506 ERROR [STDERR]  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
2003-01-10 13:31:18,516 ERROR [STDERR]  at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:98)
2003-01-10 13:31:18,516 ERROR [STDERR]  at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:102)
2003-01-10 13:31:18,516 ERROR [STDERR]  at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:77)
2003-01-10 13:31:18,526 ERROR [STDERR]  at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:80)
2003-01-10 13:31:18,526 ERROR [STDERR]  at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:111)
2003-01-10 13:31:18,526 ERROR [STDERR]  at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
2003-01-10 13:31:18,536 ERROR [STDERR]  at $Proxy16.executeService(Unknown Source)
2003-01-10 13:31:18,536 ERROR [STDERR]  at com.hp.ov.activator.deployment.servlet.component.ActivateAction.execute(Unknown Source)
2003-01-10 13:31:18,546 ERROR [STDERR]  at com.hp.ov.activator.deployment.servlet.DeployerServlet.doPost(Unknown Source)
2003-01-10 13:31:18,546 ERROR [STDERR]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
2003-01-10 13:31:18,546 ERROR [STDERR]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
2003-01-10 13:31:18,556 ERROR [STDERR]  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
2003-01-10 13:31:18,556 ERROR [STDERR]  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
2003-01-10 13:31:18,556 ERROR [STDERR]  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
2003-01-10 13:31:18,556 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
2003-01-10 13:31:18,566 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
2003-01-10 13:31:18,566 ERROR [STDERR]  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
2003-01-10 13:31:18,576 ERROR [STDERR]  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
2003-01-10 13:31:18,576 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
2003-01-10 13:31:18,576 ERROR [STDERR]  at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
2003-01-10 13:31:18,586 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
2003-01-10 13:31:18,586 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
2003-01-10 13:31:18,586 ERROR [STDERR]  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
2003-01-10 13:31:18,596 ERROR [STDERR]  at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
2003-01-10 13:31:18,596 ERROR [STDERR]  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
2003-01-10 13:31:18,596 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
2003-01-10 13:31:18,596 ERROR [STDERR]  at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
2003-01-10 13:31:18,606 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
2003-01-10 13:31:18,626 ERROR [STDERR]  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
2003-01-10 13:31:18,636 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
2003-01-10 13:31:18,636 ERROR [STDERR]  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
2003-01-10 13:31:18,636 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
2003-01-10 13:31:18,636 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
2003-01-10 13:31:18,646 ERROR [STDERR]  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
2003-01-10 13:31:18,646 ERROR [STDERR]  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
2003-01-10 13:31:18,646 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
2003-01-10 13:31:18,666 ERROR [STDERR]  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
2003-01-10 13:31:18,666 ERROR [STDERR]  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
2003-01-10 13:31:18,676 ERROR [STDERR]  at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
2003-01-10 13:31:18,676 ERROR [STDERR]  at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
2003-01-10 13:31:18,676 ERROR [STDERR]  at java.lang.Thread.run(Thread.java:479)
2003-01-10 13:31:23,484 INFO  [STDOUT] commited transaction
2003-01-10 13:31:23,484 INFO  [STDOUT] closed connection

Reply via email to