So I upgraded to Servicemix 3.3-SNAPSHOT since it appears that 3.2.2 is not going to work for me since I have to restart it after every 1100 jms messages or my Servicemix services start hanging (or will only be allowed to send a message once every maybe 20 seconds). I have no clue why all of a sudden this situation has become so severe now compared to before (I'm guessing it's been because I haven't actually done any load testing really until now). I've basically set every option I can, to prevent this condition and not a single one takes effect. Anyhow, I was hoping the upgraded versions in 3.3 (ActiveMQ 5.1) would allow me to take advantage of functionality to make messages to my high volume topic to be non-persistent and actually get discarded. Well, I have this configuration running currently:
<jms:provider service="feed:feed-jms-service" endpoint="notification" pubSubDomain="true" destinationName="topic.feed-notication" connectionFactory="#connectionFactory" deliveryMode="1" timeToLive="1000"/> <bean id="connectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"> <property name="connectionFactory"> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616" /> <property name="useCompression" value="true" /> <property name="useAsyncSend" value="true" /> </bean> </property> <!--Configure maximum sessions per connection --> <property name="maximumActive" value="1" /> </bean> To make it short, I have the producer set to NON-PERSISTENT, I have the time to live for messages set to 1 second and I am setting useAsyncSend. Even with all that sending, my producer becomes completely unresponsive and hangs attempting to send a message after about 1300 messages are sent. It does this every since time. Now, I also have a consumer that was started before I started the producer sending any messages. So every single message on my topic has been received by my consumer (the dequeue and enqueue numbers match), but yet my producer is still being blocked because of this whole persistence and flow control thing. Am I just really dense or is there some sort of magic parameter that I'm missing in all this that actually makes these settings work? No matter what I do, I just cannot seem to get these messages to become non-persistent so that my services that use that topic will stop blocking. Not to mention that my performance is lower due to persistence being on when I don't want it to be, hence I'm losing out on performance that would be great to have due to the volume I'm processing. The other option is that if the ActiveMQ team can tell me that those options definitely work in 5.1 and that the problem has to be something I'm doing in Servicemix, that's fine. I'm just at a complete loss as to where and what the problem is at this point so I can try to somehow get past it. Thanks for any help/suggestions anyone can give me. Ryan