I am running a message burst load test but producer hangs with the following
exception.

Test specifics
1. Non persistent messages 4KB each
2. 50 queues temp.queue.{0..49}
3. Client JVM runs 50 Message producers (Runnables in a threadpool
containing 50 threads)
4. All 50 message producer share instance of JmsTemplate which uses
PooledConnectionFactory (pool size=50, producerWindowSize=1024000)
5. After 15 minutes into the test or lesser the producers hang
6. Broker seem to be functioning and don't see any exceptions in broker at
debug log level.  I can post messages from web console and messages get
consumed just fine. 
7. Queue policy 
 <policyEntry memoryLimit="10mb" maxPageSize="20" maxBrowsePageSize="200"
expireMessagesPeriod="0" cursorMemoryHighWaterMark="40"
producerFlowControl="true" queue="&gt;" optimizedDispatch="true">

Issue seems to happens irrespective of whether producerFlowControl is true
or false. 

Name: producerTaskExecutor-13
State: RUNNABLE
Total blocked: 16  Total waited: 418

Stack trace: 
java.net.SocketOutputStream.socketWrite0(Native Method)
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
java.net.SocketOutputStream.write(SocketOutputStream.java:159)
org.apache.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:115)
java.io.DataOutputStream.flush(DataOutputStream.java:123)
org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:176)
org.apache.activemq.transport.AbstractInactivityMonitor.doOnewaySend(AbstractInactivityMonitor.java:322)
org.apache.activemq.transport.AbstractInactivityMonitor.oneway(AbstractInactivityMonitor.java:304)
org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:85)
org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:104)
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1304)
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1298)
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1782)
   - locked java.lang.Object@3fe5bf34
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:289)
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:224)
org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:79)
   - locked org.apache.activemq.ActiveMQMessageProducer@46c0fb2
org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:67)
org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:589)
org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:569)
org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:546)
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:466)
org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:543)
producer.ProducerTask.run(ProducerTask.java:43)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:744)

The test functions well when the pool size is 1 but throughput is not upto
the required capacity.

Any suggestions? Would appreciate any inputs. 



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Hung-Producer-tp4678060.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.

Reply via email to