Bugs item #756389, was opened at 2003-06-18 03:18
Message generated for change (Comment added) made by ejort
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=756389&group_id=22866

Category: JBossMQ
Group: v3.2
>Status: Closed
>Resolution: Fixed
Priority: 5
Submitted By: Elias Ross (genman)
>Assigned to: Adrian Brock (ejort)
Summary: Likely Race condition with MDB shared sessions

Initial Comment:

Using a MDB with container-managed persistance, I have
been getting these errors very occationally (every
1000th message.)

(I modified the JBoss code in CVS to print out a more
meaningful message when this happens)

2003-06-18 02:02:24,082 WARN  [DialogMDB] (Thread Pool
Worker-0) 
02281- Exception in onMessage, performing roll-back

javax.jms.JMSException: Unknown transaction id: null 
Known: {XidImpl [FormatId=257, GlobalId=dhcppc3//11001,
[EMAIL PROTECTED]
txState=0, sendMessages=[], ackedMessages=[] }}
[EMAIL PROTECTED]
        at
org.jboss.mq.SpyXAResourceManager.addMessage(SpyXAResourceManager.java:95)
        at
org.jboss.mq.SpySession.sendMessage(SpySession.java:696)
        at
org.jboss.mq.SpyQueueSender.internalSend(SpyQueueSender.java:118)
        at
org.jboss.mq.SpyQueueSender.send(SpyQueueSender.java:76)
        at
com.proteusmobile.smx.jms.JmsQueueMessageSender.send(JmsQueueMessageSender.java:282)

Note that the transaction ID is *null*, which should
not occur.

The problem is one thread unsets the TX ID, after the
previous one had it set.   Here is logging before the
problem hit.  Notice I added the session object to the
log message.  Notice that different thread workers have
the *same* session object and this object is created by
the container/JBoss.

2003-06-18 02:02:24,079 TRACE [SpySession] (Thread Pool
Worker-0)  setting
current tx id: XidImpl [FormatId=257,
GlobalId=dhcppc3//11679, BranchQual=2],
previous: null this: [EMAIL PROTECTED]

2003-06-18 02:02:24,080 TRACE [SpySession] (Thread Pool
Worker-1)  Unsetting
current tx id: [EMAIL PROTECTED]

This is from 3.2 CVS head.  I suspect that the same
javax.jms.QueueSession is being used for each thread in
the MDB pool.  Could somebody help me check this code!?


----------------------------------------------------------------------

>Comment By: Adrian Brock (ejort)
Date: 2003-06-18 09:50

Message:
Logged In: YES 
user_id=9459

This is fixed in 3.2 CVS.

If the XAResource has been suspended, it no longer
tries to re-remove the transaction id from the session
at commit.

Regards,
Adrian

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=756389&group_id=22866


-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to