I've figured out a workaround. If I make the call in a client-demarcated txn, the
problem does not occur. If I do not begin a txn before making the call, the problem
can occur.
So I think Jonas 2.2.4 has a bug in the way it deals with container-demarcated txns
on EJB methods declared with TX_REQUIRED...
Anyway, this workaround is fine for me. :)
Joe
Joe Gittings wrote:
> Hi Philippe,
>
> OK, attached is a file showing the server output with trace level set to
> "all". The exception occurs in this example when I call the method
> UserAuthenticator.authenticate, having successfully obtained an instance of
> UserAuthenticator (although note that it's not specific to this EJB, it
> occurs when calling methods on lots of other EJBs). This EJB is a
> stateless session EJB, and the authenticate method is trivial and quick.
> Also, this EJB is not secured at all (since it's the authenticator EJB).
>
> Some details:
> * I'm using Jonas 2.2.4 with Jeremie, and JDK 1.3.0.
> * The error seems to occur randomly with about 25% of transactions.
> * I don't think it's got anything to do with the timeout error I was having
> before, as this problem is just as likely to occur with very quick method
> calls as with long method calls.
> * I'm using TX_REQUIRED for all EJBs.
>
> Thanks,
> Joe
>
> Philippe Durieux wrote:
>
> > Joe Gittings wrote:
> > >
> > > Hi,
> > >
> > > I'm getting these errors using Jonas 2.2.4. They seem to occur pretty
> > > randomly and with almost any EJB operation, i.e. they're not just
> > > occurring with a particular EJB of mine, or during a particular
> > > operation, they're occurring at random with any operation.. I'm not
> > > alone in this, exactly the same problem was reported in this posting:
> > > http://www.objectweb.org/messages/JonasUsers/2001/01/msg00033.html
> > > by Joneric Wennerstrom on 4th January.
> > >
> > > They're quite a serious concern for me, I can't see why they're
> > > occurring and as I say they occur fairly randomly.
> > > Can anyone help?
> > > Joe
> > >
> > > addCompletedTransactionListener: bad status: COMMITTED
> > > System Exception in business method:java.lang.IllegalStateException:
> > > addComplet
> > > edTransactionListener: Bad status
> > > Cannot set transaction as rollback only
> > > Bad status=COMMITTED
> > Hi,
> > Can you give me more information about this problem ?
> > When do you et this error ? IS this related to the timeout problem
> > you had before ? What is the method that raises this exception ?
> > Looking at just this message, I cannot find something wrong in jonas
> > because it's difficult to see where can be the problem...
> > Do you use Jeremie or rmi ?
> >
> > --
> > Philippe Durieux ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > Bull - 1 rue de Provence - 38432 Echirolles Cedex France
> > [EMAIL PROTECTED]
> > -> Download our EJBServer at http://www.evidian.com/ejb <-
>
> ------------------------------------------------------------------------
> received_request() : received request context principal : name = JOnAS_client
> JOnASUserAuthenticatorHome.create()
> JSessionHome.getSessionEJBObject
> No JBeanSession found! a new one must be created
> JContainerImpl.getMethodGuard()
> JOnASUserAuthenticatorRemote()
> Current.setPropagationContext(null) -> detach
> sending_reply() : creates reply context org.objectweb.jonas_tm.PropagationContex
> t@55276a
> Coordinator of this pCtxt is null
> security context sets to default.
> sending_reply() : creates reply context principal : name = JOnAS_client
>
> received_request() : received request context principal : name = JOnAS_client
> JOnASUserAuthenticatorRemote.authenticate(java.lang.String, java.lang.String)
> JBeanSession.preinvoke
> NamingManager: setComponentContext: UserAuthenticator
> JBeanSession: getContextFromPool
> JContainerImpl.checkTransactionIn
> Transaction Attribute = TX_REQUIRED
> sending_request() creates request context org.objectweb.jonas_tm.PropagationCo
> ntext@55276a
> Coordinator of this pCtxt is null
> JonasSecuritySender.sending_request() : principal : name = JOnAS_client
> JonasSecuritySender.received_reply(principal : name = JOnAS_client)
> sending_request() creates request context org.objectweb.jonas_tm.PropagationCo
> ntext@55276a
> Coordinator of this pCtxt is null
> JonasSecuritySender.sending_request() : principal : name = JOnAS_client
> received_request() org.objectweb.jonas.rmifilters.JonasReceiver@688954 context o
> rg.objectweb.jonas_tm.PropagationContext@7e319a
> received_request: valid transaction context
> Coordinator of this pCtxt is null
> Current.setPropagationContext(1003182604084228)
> Current: setPropagationContext -> new Tx
> TransactionImpl.TransactionImpl(PropagationContext pctx)
> Associate Tx to Xid:1003182604084228
>
> received_request() : received request context principal : name = JOnAS_client
> Current.setPropagationContext(null) -> detach
> Remove Tx from Xid:1003182604084228
> sending_reply() : creates reply context org.objectweb.jonas_tm.PropagationContex
> t@7e319a
> Coordinator of this pCtxt is null
> security context sets to default.
> sending_reply() : creates reply context principal : name = JOnAS_client
>
> received_reply context org.objectweb.jonas_tm.PropagationContext@2f75e5
> Coordinator of this pCtxt is null
> Current.setPropagationContext(1003182604084228)
> Current: setPropagationContext -> new Tx
> TransactionImpl.TransactionImpl(PropagationContext pctx)
> Associate Tx to Xid:1003182604084228
> JonasSecuritySender.received_reply(principal : name = JOnAS_client)
> DataSourceFactory: return the matching ConnectionManager
> ConnectionManager.getConnection()
> ConnectionManager.getConnection(sepasal_ejb_server_debug)
> Tx = 1003182604084228
> XAConnectionImpl.getConnection()
> ConnectionImpl.isClosed()
> Pool: reuse a Connection for Tx = 1003182604084228
> TransactionImpl.addCompletedTransactionListener
> SubCoordinator.addCompletedTransactionListener
> addCompletedTransactionListener: bad status: COMMITTED
> JBeanSession.postinvoke
> JBeanSession: putContextInPool
> JBeanHome.toThePool: size=1
> doPostInvoke
> System Exception in business method:java.lang.IllegalStateException: addComplet
> edTransactionListener: Bad status
> TransactionImpl.setRollbackOnly()
> SubCoordinator.setRollbackOnly()
> Cannot set transaction as rollback only
> Bad status=COMMITTED
> Current.setPropagationContext(null) -> detach
> sending_reply() : creates reply context org.objectweb.jonas_tm.PropagationContex
> t@55276a
> Coordinator of this pCtxt is null
> security context sets to default.
> sending_reply() : creates reply context principal : name = JOnAS_client
>
> ------------ ConnectionPool -----------------
> Nb of item not associated with tx = 0
> +++ Hashtable XAC -> item:
> 1 open=0 tx=null
> +++ FreeList:
> 1 open=0 tx=null
> +++ Associated with tx:
> ---------------------------------------------
> ------------ ConnectionPool -----------------
> Nb of item not associated with tx = 0
> +++ Hashtable XAC -> item:
> 0 open=0 tx=1003182604084228
> +++ FreeList:
> +++ Associated with tx:
> 0 open=0 tx=1003182604084228
> ---------------------------------------------
----
To unsubscribe, send email to [EMAIL PROTECTED] and
include in the body of the message "unsubscribe jonas-users".
For general help, send email to [EMAIL PROTECTED] and
include in the body of the message "help".