Hi,
I have an issue regarding an transaction ending to early that i believe is
caused by jbossaop. My setup is JBossAS4.0.4, JBossAOP and JBossWS1.0.1. The
problem is that I am applying an interceptor around a method within a stateless
session bean as marked by an annotation (RequiresLogin)
e.g.
| @Stateless
| public class UserService {
| @RequiresLogin // my custom annotation
| public List<User> getAllUsers() ....
| }
|
The interceptor looks like
| public LoginInterceptor implements Interceptor {
| public Object invoke(Invocation invocation) throws Throwable {
| String sessionIdentifier = // get session id from method args
| HandheldService handheldService = // lookup handheld service
| boolean isLoggedIn = handheldService.checkLogin( sessionIdentifier
);
| // handle if not logged in
|
| return invocation.invokeNext();
| }
| }
|
The call to handheldService.checkLogin works correctly but I am presuming that
when the method completes then the transaction is closed and when the call to
getAllUsers is made that the transaction does not exist?
The exception that is thrown is as follows:
11:17:48,502 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
| 11:17:48,502 ERROR [JDBCExceptionReporter] Transaction is not active:
tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=susannew.msoft.dev/17,
BranchQual=, lo
| calId=17]; - nested throwable: (javax.resource.ResourceException:
Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257,
GlobalId=susannew.msoft.
| dev/17, BranchQual=, localId=17])
| 11:17:48,510 ERROR [SOAPFaultExceptionHelper] SOAP request exception
| javax.ejb.EJBTransactionRolledbackException:
javax.persistence.PersistenceException:
org.hibernate.exception.GenericJDBCException: Cannot open connection
| at
org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:93)
| at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
| at
org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:201)
| at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
|
| ....
|
| Caused by: org.jboss.util.NestedSQLException: Transaction is not active:
tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=susannew.msoft.dev/17,
BranchQual=,
| localId=17]; - nested throwable: (javax.resource.ResourceException:
Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257,
GlobalId=susannew.mso
| ft.dev/17, BranchQual=, localId=17])
| at
org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
| at
org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
| at
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
| ... 109 more
| Caused by: javax.resource.ResourceException: Transaction is not active:
tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=susannew.msoft.dev/17,
BranchQual=,
| localId=17]
| at
org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:290)
| at
org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:379)
| at
org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:812)
|
|
If i comment out the interceptor call to checkLogin every thing works as
expected!
Any Ideas,
Thanks Gareth
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3952387#3952387
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3952387
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user