(i posted the following to the user list without a response.  it was suggested to me by someone with jboss to post to the dev list)
 
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.  res-sharing-scope of Shareable causes other problems that i'm currently trying to debug.  i've found minimal documentation on res-sharing-scope - perhaps the Unshareable setting is the problem?
 
this use case works fine under oc4j 9.0.3 and TeS 7.3, albeit without res-sharing-scope set.
 
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