Tim -
Thanks for your reply and the effort you have put in analyzing the problem. But I am sorry
if I have failed to communicate the real intent of the test program.
The large values for CONSUMER_SLEEP_TIME and RELAYER_SLEEP_TIME was intentionally put. It
is simulating a situation where the system could go down with many messages unconsumed in
a topic. So, the test case needs to stop with many messages unconsumed in the topic. And
this test case is run multiple times without restarting the JMS server.
To give you an idea of the usage - JMS is used by a communication layer to provide a large
scale message passing infrastructure (similar to MPI) between the distributed processes.
So, during the application development many applications would terminate abnormally (but
we make sure that all the connections, topic producers, topic consumers, topic sessions
are closed before the application terminates) leaving messages unconsumed on the topic.
But we no longer care for these messages as it does not any meaning outside of the closed
connection/session. So, we want to make sure that the unconsumed messages are flushed out
(out of memory at least and the database). Multiple runs of the test case essentially
tries to test this behavior - if the messages from a previous run is still in JMS server
memory.
So, I would rephrase my query - in a scenario where the applications close (connections,
sessions, topic producers, topic consumers) arbitrarily and we need the unconsumed
messages on the topic to be flushed out automatically. Please note that When the
application closes, it terminates the JVM the application was instantiated in, too. So,
apart from setting the messages to be NON_PERSISTENT and closing all the JMS objects and
the JVM, is there anything that needs to be done to flush all the messages?
Thanks
Raghu
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3961774#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...