Using JBoss 3.0.1 on RedHat 7.3, I have been stuck on the following
error for a bit and it's driving me crazy:

    Application error: BMT stateless bean PlanLockService should complete
    transactions before returning (ejb1.1 spec, 11.6.1)

This error occurs in an EJB that is doing BMP via classes that make up
the DAO pattern with BMT via the UserTransaction interface. 

Here is the sequence of events I'm performing:  

    1) start UserTransaction
    2) get connection
    3) failure occurs here with above error
    4) do some work
    5) close connection
    6) commit UserTransaction

I believe I'm following the necessary steps for mixing UserTransactions
and database connections with JBoss. The fact that the app fails upon
returning from getting a connection is very perplexing. 

The EJB 1.1 spec, section 11.6.1 says: 

    "If a stateless session bean instance starts a transaction in a
    business method, it must commit the transaction before the business
    method returns."

What exactly does this statement imply by stating that a transaction
must commit before the method returns?

I'm starting a UserTransaction by calling a method in the EJB.
Then the following steps take place: 

    a) EJB grabs a connection from the OracleDS via JBoss
    b) connection is passed to a factory
    c) connection is passed to another factory
    d) connection is passed to the DAO object via reflection
    e) DAO object returns to EJB
    f) call to grab connection completes
    g) the following exception occurs: 

        java.rmi.RemoteException: Application error: BMT stateless bean
        PlanLockService should complete transactions before returning (ejb1.1 spec, 
11.6.1)

        at 
org.jboss.ejb.plugins.AbstractTxInterceptorBMT.checkStatelessDone(AbstractTxInterceptorBMT.java:199)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:148)
        at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62)
        at 
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:77)
        at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:203)
        at 
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313)
        at org.jboss.ejb.Container.invoke(Container.java:711)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
        at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:370)
        at java.lang.reflect.Method.invoke(Native Method) 
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:241) 
        at sun.rmi.transport.Transport$1.run(Transport.java:152)
        at java.security.AccessController.doPrivileged(Native Method) 
        at sun.rmi.transport.Transport.serviceCall(Transport.java:148)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:465)
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:706)
        at java.lang.Thread.run(Thread.java:484)

All I've done from the client so far is make a call to the EJB to start
the UserTransaction, yet the exception is occurring.

I certainly hope that someone, anyone can provide me some clarification
on this problem. The last time I posted a question about UserTransactions
I had to practically beg for assistance.

Any amount of help is truly appreciated. 

Bruce
-- 
perl -e 'print unpack("u30","<0G)U8V4\@4VYY9&5R\"F9E<G)E=\$\!F<FEI+F-O;0\`\`");'




-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to