"timfox" wrote : If you have well written clients which always close their
connection(s) properly before exiting then any unacknowledged messages will be returned
immediately to the queue(s) on close of those connection(s), otherwise the after the
client exits the server will eventually time out that client and close its resources
automatically. That time is governed by the ping settings (see user guide)
Sorry for the delay, I was checking all my code and trying to reproduce the error again.
Unfortunately, my problem still persists: of course, as a 'good' client, I try to
close the connection I'm using when I'm going down. The problem might come from
the fact that this client is a web server and that there are 5 threads (consumers)
consuming the queue. Sometimes the server stops BEFORE the threads are able to close
properly; in other words, the thread is destroyed rather than properly finished.
I simulated today 2 distinct situations: first, the client crashes and the server ended up
with 4 messages. These were consumed right after the client started again and connected -
I can say that by reading my client logs that (when in debug mode) tell me each time the
client consumes a message. I reckon this is the way it should be. In the second try, the
queue ended up with 8 messages after the client crashed. However, for some unknown reason,
this time the messages were not consumed by the client when it started again and
connected. They simply stood there. Unfortunately, it gets worse: whenever a producer
sends a message to that queue, its size is increased by 1 and the new message is not
consumed too. So, after many client restarts, my problem is still there: the size is
increasing and the consumer is not consuming. Right now, I have 16 messages to be
delivered, a client that should be consuming but it's not, and the not so good
possibility that the only way to get things back in place is a restart of the server
(which seems to be the only way to empty the queue).
Lastly, to try to further explain things I used a MySQL terminal to make a query that
listed all my messages in that queue; I can't post the results here, but I can comment
a bit on them. The messages have a distinct 'message_id', 'transaction_id'
null, 'state' = 'C', a distinct 'ord' number, 'page_ord'
null, 'delivery_count' = '0' and 'sched_delivery' = '0'.
Does this help in any way?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4167449#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...