Thanks Adrian. I'll be testing it out as soon as I can.

Bruce



Adrian Brock wrote:

Hi Bruce,

I found the problem, it is fixed in CVS.
It should be availble from pserver in 24 hours time
or the nightly snapshot if I haven't missed the snapshot time.

The fix is in org.jboss.mq.server.BasicQueue.
It was a race condition. Nothing to do with transactions.

Thanks for testing this, I'm going to leave my machine running the test overnight to confirm the fix.

Regards,
Adrian

On Thu, 2003-10-02 at 18:40, Adrian Brock wrote:


On Thu, 2003-10-02 at 05:35, Bruce Slawson wrote:


Adrian,

Looks like I'm not crazy after all. I was able to recreate the problem running your code. It looks like it has nothing to do with stopping/starting the JMS container invoker. This is what I did to recreate it.

I built your test case and created a single message using "ant send". This causes a single message to thrash back and forth between the main queue and the DLQ. All is good at this point and it will run indefinitely.

The problem occurs after additional load is put on JBoss. What happens is that the message just "disappears" and the logging messages stops. If another app is running a mildly intensive operation or something significant is hot deployed while the thrashing is occurring, it just stops. This is all the indication I get when a finder method was called that returned a dozen or so entity beans. No other messages appear after this.

2003-10-01 16:39:46,669 INFO [test.mdb.MainMDBBean] ID:23-10650515866582586 null
2003-10-01 16:39:46,674 INFO [test.mdb.MainMDBBean] ID:23-10650515866582586 1
2003-10-01 16:39:46,695 INFO [test.mdb.MainMDBBean] ID:23-10650515866582586 2
2003-10-01 16:39:46,700 WARN [org.jboss.ejb.plugins.jms.DLQHandler] Message resent too many times; sending it to DLQ; message id=ID:23-10650515866582586
2003-10-01 16:39:46,703 INFO [test.mdb.DLQMDBBean] ID:2-10650515867013092
2003-10-01 16:39:46,703 DEBUG [org.jboss.resource.adapter.jms.JmsSessionFactoryImpl] [EMAIL PROTECTED], [EMAIL PROTECTED], isTopic=false
2003-10-01 16:39:46,704 DEBUG [org.jboss.resource.adapter.jms.JmsSession] Closing session
2003-10-01 16:39:46,704 DEBUG [org.jboss.resource.adapter.jms.JmsManagedConnection] Sending connection event: 1
2003-10-01 16:39:46,713 DEBUG [org.jboss.mq.SpySession] Session closing.
2003-10-01 16:39:46,716 INFO [test.mdb.MainMDBBean] ID:23-10650515867042587 null
2003-10-01 16:39:46,722 INFO [test.mdb.MainMDBBean] ID:23-10650515867042587 1
2003-10-01 16:39:46,729 INFO [test.mdb.MainMDBBean] ID:23-10650515867042587 2
2003-10-01 16:39:46,734 WARN [org.jboss.ejb.plugins.jms.DLQHandler] Message resent too many times; sending it to DLQ; message id=ID:23-10650515867042587
2003-10-01 16:39:46,743 DEBUG [org.jboss.mq.SpySession] Session closing.
2003-10-01 16:39:46,744 INFO [test.mdb.DLQMDBBean] ID:2-10650515867353093
2003-10-01 16:39:46,744 DEBUG [org.jboss.resource.adapter.jms.JmsSessionFactoryImpl] [EMAIL PROTECTED], [EMAIL PROTECTED], isTopic=false
2003-10-01 16:39:46,744 DEBUG [org.jboss.resource.adapter.jms.JmsSession] Closing session
2003-10-01 16:39:46,744 DEBUG [org.jboss.resource.adapter.jms.JmsManagedConnection] Sending connection event: 1
2003-10-01 16:42:48,201 DEBUG [org.jboss.resource.connectionmanager.IdleRemover] run: IdleRemover notifying pools, interval: 450000
2003-10-01 16:42:48,203 DEBUG [org.jboss.mq.SpySession] Session closing.
2003-10-01 16:42:48,204 DEBUG [org.jboss.mq.SpySession] Session closing.
2003-10-01 16:42:48,204 DEBUG [org.jboss.mq.SpySession] Session closing.
2003-10-01 16:42:48,204 DEBUG [org.jboss.mq.SpySession] Session closing.



Restarting JBoss usually causes the message to reappear and the thrashing to continue. I am running JBoss 3.2.2RC4, Java 1.4.1_01, Mac OS X 10.2.6, PowerBook G4 1Ghz, 1 GB RAM. Hardware resources shouldn't be an issue.




I managed to reproduce this after the message bounced backwards and
forwards for an hour. (I've set the deployment scanner to ScanPeriod=0
which means it is continually looping down the deploy/ folder looking
for new deployments - at "idle" jboss uses 95% cpu).

It is not a deadlock.

I've enabled TRACE logging for org.jboss.mq but it hasn't reoccured
after 3 hours. Can you try the same thing?
I'm trying two messages to see if this makes it more likely.

It sounds like the tranaction failed to commit, rebooting jboss
causes jdbc2 to recover (rollback) the incomplete transaction.

Regards,
Adrian



Bruce







-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to