I think I've found a bug in JBM 1.4.0.SP3.

I ran JBM 1.4.0.SP3 to reproduce my earlier problem in UAT.

I then went through each of the items listed as oversights before until the 
problem dissapeared. The order was:

1. Updated to latest schema. Problem still occurs.
2. Changed to non-EAP version of JBM and JBR libraries. Problem still occurs.
3. Turned clustering for PostOffice off. Problem still occurs.
4. Changed PrefetchSize to 1000 and SlowConsumers to false. Problem fixed.

I undid/repeated step 4 a few times and it this is definately my problem area.

I then switched to the JBM 1.4.0.GA libraries to see if I can reproduce the 
problem. I couldn't. It works stably whether SlowConsumers is true or false.

This makes me think that between JBM1.4.0.GA and JBM1.4.0.SP3, there must have 
been a change to the client consumer flow control.

I compared the source code for the revisions and noticed there was significant 
refactoring in org.jboss.jms.client.container.ClientConsumer.

Additionaly, since the behavior happens only after a period and only under 
heavy load, this sounded like a threading problem.....

I can't be sure by looking at the code as I'm not a JBM expert, but I do notice 
that most of the time when consumeCount gets modified, it is done so within the 
mainLock. However, not always .... so this might cause contention issues. 
Perhaps consumeCount should be declared as volatile to prevent threads storing 
local values for the variables.






View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134224#4134224

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134224
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to