[ https://issues.apache.org/activemq/browse/AMQ-2167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50616#action_50616 ]
Ashok commented on AMQ-2167: ---------------------------- I am using *ActiveMQ 5.1 NOT 5.2* > ActiveMQ producer/consumer hangs when on of the consumer didn't respond > ----------------------------------------------------------------------- > > Key: AMQ-2167 > URL: https://issues.apache.org/activemq/browse/AMQ-2167 > Project: ActiveMQ > Issue Type: Bug > Reporter: Ashok > Attachments: Thread Dump for ActiveMQ_2.tdump > > > We are using ActiveMQ 5.2 & Spring 2.5.4... > We are using ActiveMQ Embeeded broker > <bean id="jmsFactory" > class="org.apache.activemq.pool.PooledConnectionFactory" > destroy-method="stop"> > <property name="connectionFactory"> > <bean class="org.apache.activemq.ActiveMQConnectionFactory"> > <property name="brokerURL"> > <value>vm://localhost?broker.persistent=false</value> > </property> > </bean> > </property> > </bean> > > <bean id="destination" class=" org.apache.activemq.command.ActiveMQQueue"> > <constructor-arg ref="jmsQueueJndiName"></constructor-arg> > </bean> > > > <bean id="calendarEventContainer" > class="org.springframework.jms.listener.SimpleMessageListenerContainer" > > <property name="connectionFactory" ref="jmsFactory" /> > <property name="destination" ref="destination" /> > <property name="messageListener" ref="calendarEventProcessor" /> > <property name="messageSelector"> > <util:constant > static-field="com.jpmc.spex.utils.lookup.EventCategoryConstants.EVENT_CATEGORY_CALENDAR"/> > </property> > </bean> > > <bean id="runtimeEventContainer" > class="org.springframework.jms.listener.SimpleMessageListenerContainer" > > <property name="connectionFactory" ref="jmsFactory" /> > <property name="destination" ref="destination" /> > <property name="messageListener" ref="runtimeEventProcessor" /> > <property name="messageSelector"> > <util:constant > static-field="com.jpmc.spex.utils.lookup.EventCategoryConstants.EVENT_CATEGORY_RUNTIME"/> > </property> > </bean> > > <bean id="systemEventContainer" > class="org.springframework.jms.listener.SimpleMessageListenerContainer" > > <property name="connectionFactory" ref="jmsFactory" /> > <property name="destination" ref="destination" /> > <property name="messageListener" ref="systemEventProcessor" /> > <property name="concurrentConsumers" value="5" /> > <property name="messageSelector"> > <util:constant > static-field="com.jpmc.spex.utils.lookup.EventCategoryConstants.EVENT_CATEGORY_SYSTEM"/> > </property> > </bean> > > <bean id="genericCalendarEventContainer" > class="org.springframework.jms.listener.SimpleMessageListenerContainer" > > <property name="connectionFactory" ref="jmsFactory" /> > <property name="destination" ref="destination" /> > <property name="messageListener" ref="genericCalendarEventProcessor" /> > <property name="messageSelector"> > <util:constant > static-field="com.jpmc.spex.utils.lookup.EventCategoryConstants.EVENT_CATEGORY_GENERIC"/> > </property> > </bean> > > We are sending the email from all these listeners after doing some logic.when > something happens in the SMTP side and if there is no response from SMTP side > and if the Listener is waiting then the entire producer/consumer is halted. > My Question is why One Consumer blocking all other consumer /producer. (see > the stack trace which shows one of the Consumer is waiting for some response > from SMTP server). > ActiveMQ Session Task" - Thread t...@2554 > java.lang.Thread.State: RUNNABLE > at java.net.SocketInputStream.socketRead0(Native Method) > at java.net.SocketInputStream.read(SocketInputStream.java:129) > at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:97) > at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) > at java.io.BufferedInputStream.read(BufferedInputStream.java:237) > - locked java.io.bufferedinputstr...@13a80ea > at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:75) > at > com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1440) > at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1260) > at > com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370) > at javax.mail.Service.connect(Service.java:275) > at > org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389) > at > org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:342) > at > org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:338) > at > com.jpmc.ibtech.spring.email.MimeEmailService.sendEmail(MimeEmailService.java:61) > at > com.jpmc.spex.background.events.processor.AbstractEventAction.sendEmail(AbstractEventAction.java:63) > at > com.jpmc.spex.background.events.processor.AbstractEventAction.execute(AbstractEventAction.java:79) > at > com.jpmc.spex.background.events.processor.system.SystemEventAction.execute(SystemEventAction.java:47) > at > com.jpmc.ibtech.spring.jms.EventProcessor.onMessage(EventProcessor.java:101) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:407) > at > org.springframework.jms.listener.SimpleMessageListenerContainer.processMessage(SimpleMessageListenerContainer.java:290) > at > org.springframework.jms.listener.SimpleMessageListenerContainer$2.onMessage(SimpleMessageListenerContainer.java:266) > at > org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:967) > - locked java.lang.obj...@1e58347 > at > org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:122) > at > org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:192) > at > org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122) > at > org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > Locked ownable synchronizers: > - locked java.util.concurrent.locks.reentrantlock$nonfairs...@10dbec7 > See the attached ThreadDump which shows Producer is waiting.. > I saw that..I can enable ProduceFlowControl...I am just worried whether it > will start spilling to the disk and create more problems. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.