Hello Timfox

With 'workers' i guess i mean consumers. In the jbos.xml i have a config like 
this:
<invoker-proxy-binding>
--bla bla
   20
  20
/-bla bla

meaning i want 20 concurrent consumers (the logging calls them workers) to work 
parallel to pick up the messages that are sent to the queue. A nice feature, 
but during that process consumers get lazy and do not respond anymore :(. So, 
with JBossMQ the only solution is to restart JBoss after about 24 hours.

I presume that any other solution, ie JBoss Messaging, could have the same 
problems so a nice feature would be if it would have the ability to recover 
from dying consumers. If not, a reset of the messaging system would hlp a lot 
because other services would be uneffected by a restart.

Another problem with JBossMQ (most probably) is that JBoss JCA connection pool 
is very itchy about not closing database connections. So, when a consumer 
stalls, it might keep the connections open indefinitly and this will lead to 
terrible other problems. Just do a search on the forums and you will see that a 
lot of people who switch to JBoss experience significant problems with JCA.
And in my configuration you see a lot of dead database connections combined 
with a decrease in MQ activity.

So, to solve my problem i see a few possible solutions:
1. improve the code that is executed in the consumer (because the consumer 
hangs because my code within it hangs)
2. get a MQ system that have some managing capability (to cover up for 1.)
3. drop JBoss JCA, it is simplly too itchy about connection closing (but this 
is a different story)

So, basically i my situation i would like to configure the following:
"Dear messaging system. You have to work through thousands of messages per day. 
I would like you to process them swiftly, and with accuracy i could expect from 
a computer program. But, every now and then you will get an evil message that 
might take too much of your attention. Please discard these messages if you 
spend more then 10 minutes of your time (or put them in a evil messages group 
where a few dedicated consumers handle these nasty cases)." And if a tsunami of 
evil messages arrive at your get i understand, so no heart feelings when i want 
to restart you without bothering other processes that are running in the 
application server!

FYI, a  single message in our application will lead to several hundreds http 
connections with other servers, serveral thousand database requests, a couple 
of external webservices (AXIS, JBoss WS... cool features!) etc. So, a lot of 
situations where things can stall or go wrong. To get a feeling, if the 
concurrent cosumers are set to 20++, JBoss will die within the hour (only 
option "kill -9 PID").
And one other thing. We have a couple of message queues. Some can be considered 
'bulk queues', but others are processing financial transactions, so i would 
wish to discriminate them (the pigs queue is more equal then others).

In a nutshell:
- messaging managability
  - restart, preferably on queue level
  - discriminating queues
  - recovering of dead consumers, or...
    - regrouping slow/fast messages, so the bulk will be processed in time

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

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

Reply via email to