Deployed the attached TextMDB (modified JBoss example) to our JBoss 4.0.5 GA server (cluster).
- send a message to "queue.A" with Reply To set to "queue.REPLY_A"
The TextMDB bean:
- creates a temporary queue with NON_PERSISTENT delivery mode
- forwards message body to "queue.B" and sets the reply queue to this temporary queue
- another (or the same) instance of TextMDB replies and adds some text, replies to the temporary queue
- the first TextMDB replies to "queue.REPLY_A"
Works fine, except that every time a temporary queue message is sent, the number of threads on the slave increases by 3.
On the master the threads are destroyed after a while, but on the slave they persist, growing to "OutOfMemoryError: unable to create new native thread"
Temporary queue Thread Name example: TempQueue: ID:{HOSTNAME}-59619-1215591084487-0:16:5
+ 2 topic threads
That thread ID can be found ActiveMQ messages in the attached JBoss log.
Have I created a bug im my code or have I found a bug in the ActiveMQ server?
The problem on the slave persists.
To run the test do something like:
java -cp conf:lib/log4j-1.2.14.jar:lib/activemq-all-5.2-SNAPSHOT.jar:lib/activemqjee-0.0.2.jar org.activemq.jms.StandaloneApp
With libraries in "lib" and "log4j.xml" and "jndi.properties" in "conf".
"jndi.properties" contains the fail-over URL:
java.naming.provider.url=failover:(tcp://masterhost:61616,tcp://slavehost:61616)
BTW: Pure master/slave does not work with 5.1.0, so I cannot test that one. ( see AMQ-1585 )