[jboss-user] [Messaging, JMS & JBossMQ] - Message driven bean and transaction

zahra2towin do-not-reply at jboss.com
Tue May 13 01:30:17 EDT 2008


Hi

I have an interseptor on ejb method, when an exception occured in EJB method this interceptor catch the exception and send the exception to a message driven bean to log it in data base, 
the problem occured when the database exception or application exception that mark to rullback the transaction occured, in this case execution of 
"connection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE)"
raise "transaction is not active" Exception,

this is the stack trase of exception


  | 08:14:14,531 ERROR [JmsSessionFactoryImpl] could not create session
  | javax.resource.ResourceException: Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Mohammadi/1096, BranchQual=, localId=1096]
  | 	at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:290)
  | 	at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:396)
  | 	at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
  | 	at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.allocateConnection(JmsSessionFactoryImpl.java:389)
  | 	at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.createQueueSession(JmsSessionFactoryImpl.java:144)
  | 	at com.gpayments.activepayment.core.exception.ExceptionHandlerService.log(ExceptionHandlerService.java:40)
  | 	at com.gpayments.activepayment.core.exception.ExceptionHandlerService.log(ExceptionHandlerService.java:32)
  | 	at com.gpayments.activepayment.interceptor.ExceptionInterceptor.handler(ExceptionInterceptor.java:48)
  | 	at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
  | 	at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
  | 	at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
  | 	at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:263)
  | 	at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
  | 	at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
  | 	at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
  | 	at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
  | 	at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
  | 	at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:412)
  | 	at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
  | 

even when I set the transactionAttribute to "REQUIRES_NEW" the exception is raised.

thanks a lot
[list=]

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150228#4150228

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4150228



More information about the jboss-user mailing list