I just check the configuration file, actually I've disabled the flow control:
<destinationPolicy> <policyMap> <policyEntries> <policyEntry topic=">" producerFlowControl="false" memoryLimit="100mb"> <pendingSubscriberPolicy> <vmCursor /> </pendingSubscriberPolicy> </policyEntry> <policyEntry queue=">" producerFlowControl="false" memoryLimit="100mb"> <!-- Use VM cursor for better latency For more information, see: http://activemq.apache.org/message-cursors.html <pendingQueuePolicy> <vmQueueCursor/> </pendingQueuePolicy> --> </policyEntry> </policyEntries> </policyMap> </destinationPolicy> At 2013-07-16 20:15:11,"Christian Posta" <christian.po...@gmail.com> wrote: >Yes, on the first time PFC kicked in you would see the log messages. Not on >subsequent times. > > >On Tue, Jul 16, 2013 at 8:01 AM, lzr <jsw...@163.com> wrote: > >> Based on my experiences if the issue caused by the producer flow control >> configuration, the logs will have some warning messages, right? In fact I >> didn't found any warning or errors in the activemq.log. >> Anyway, I'll check the configuration files right now. >> >> >> thanks lot, >> Zhuran. >> >> >> At 2013-07-16 19:36:44,"Christian Posta" <christian.po...@gmail.com> >> wrote: >> >> >This means the client didn't' receive a response from the broker. >> >Did the broker producer flow control this client? ie, was the destination >> >to which the client sending full? >> > >> > >> >On Tue, Jul 16, 2013 at 7:23 AM, lzr <jsw...@163.com> wrote: >> > >> >> Dear all, >> >> >> >> >> >> I found a one of the ActiveMQ thread got stuck unexpectedly for several >> >> days. Customer was very angry to the ActiveMQ for the bad behavior. Did >> >> anybody experienced this issue? It would be much appreciated if any >> clue!!! >> >> My application is normal Java JMS application like the following: >> >> new ActiveMQConnectionFactory. >> >> create Connection; >> >> conn.start. >> >> create session. >> >> create destination, producer and message >> >> send messages >> >> commit; >> >> conn.close. >> >> >> >> >> >> The follows is the stack when I looked into it with debug tools: >> >> >> >> sun.misc.Unsafe.park(Native Method) >> >> >> >> java.util.concurrent.locks.LockSupport.park(LockSupport.java:169) >> >> >> >> >> >> >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1787) >> >> >> >> >> java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:356) >> >> >> >> >> >> >> org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:40) >> >> >> >> >> >> >> org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:80) >> >> >> >> >> >> >> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1233) >> >> >> >> >> >> >> org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1339) >> >> >> >> >> org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:488) >> >> >> >> nc.bs.mqv2.mmgp.mq.UFMQProcessor.getConnection(UFMQProcessor.java:487) >> >> >> >> nc.bs.mqv2.mmgp.mq.UFMQProcessor.getConnection(UFMQProcessor.java:462) >> >> >> >> >> >> >> nc.bs.mqv2.mmgp.mq.UFMQProcessor.sendSerializedObjMsg(UFMQProcessor.java:128) >> >> >> >> >> >> >> nc.bs.mqv2.meam.mq.sendbasedatas.AbstractMeamBDSyncService.sendBaseData(AbstractMeamBDSyncService.java:64) >> >> >> >> >> >> >> nc.bs.mqv2.mes.bd.mq.basedoc.AbstractBDServerSendService.dosendDataProcess(AbstractBDServerSendService.java:213) >> >> >> >> >> >> >> nc.bs.mqv2.mes.bd.mq.basedoc.AbstractBDServerSendService.sendDatas(AbstractBDServerSendService.java:62) >> >> >> >> >> >> >> nc.impl.mqv2.mes.bd.mq.SyncSendServiceImpl.ncserverSendDatas(SyncSendServiceImpl.java:58) >> >> >> >> nc.gejb.meam.cmt.MeamEjbBean.ncserverSendDatas(MeamEjbBean.java:8741) >> >> >> >> >> nc.gejb.meam.cmt.EJSLocalStatelessnc_gejb_meam_cmt_Meam_b44269e7.ncserverSendDatas(Unknown >> >> Source) >> >> >> >> sun.reflect.GeneratedMethodAccessor447.invoke(Unknown Source) >> >> >> >> >> >> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> >> >> java.lang.reflect.Method.invoke(Method.java:615) >> >> >> >> >> >> >> nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:56) >> >> >> >> >> >> >> nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:34) >> >> >> >> $Proxy58.ncserverSendDatas(Unknown Source) >> >> >> >> >> >> >> nc.bs.mqv2.meam.mq.task.DoSendBaseDataTaskUtil.runTask(DoSendBaseDataTaskUtil.java:63) >> >> >> >> >> >> >> nc.bs.mqv2.meam.mq.task.NCServerBaseDatasSendTask.executeTask(NCServerBaseDatasSendTask.java:26) >> >> >> >> >> >> >> nc.bs.pub.taskcenter.BgBizsPluginProcess.callBusinessPlugin(BgBizsPluginProcess.java:43) >> >> >> >> nc.bs.pub.pa.read.TaskBodyBase.callBizsPlugin(TaskBodyBase.java:188) >> >> >> >> nc.bs.pub.pa.read.TaskBodyBase.callBusinessPlugin(TaskBodyBase.java:174) >> >> >> >> nc.bs.pub.pa.read.TaskBodyBase.createMetaMsg(TaskBodyBase.java:95) >> >> >> >> >> nc.bs.pub.pa.read.TaskBodyBase.createAndSendMessage(TaskBodyBase.java:41) >> >> >> >> >> nc.bs.pub.taskcenter.BackgroundTaskBody.execute(BackgroundTaskBody.java:47) >> >> >> >> >> >> >> nc.impl.uap.scheduler.ExecutorServiceImpl.executeTask_RequiresNew(ExecutorServiceImpl.java:27) >> >> >> >> >> >> >> nc.itf.uap.mw.MwBizEJBEjbBean.executeTask_RequiresNew(MwBizEJBEjbBean.java:1682) >> >> >> >> >> nc.itf.uap.mw.EJSLocalStatelessnc_itf_uap_mw_MwBizEJB_f98e92a8.executeTask_RequiresNew(Unknown >> >> Source) >> >> >> >> sun.reflect.GeneratedMethodAccessor1036.invoke(Unknown Source) >> >> >> >> >> >> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> >> >> java.lang.reflect.Method.invoke(Method.java:615) >> >> >> >> >> >> >> nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:56) >> >> >> >> >> >> >> nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:34) >> >> >> >> $Proxy39.executeTask_RequiresNew(Unknown Source) >> >> >> >> nc.bs.uap.scheduler.impl.TaskExecutor.executeTask(TaskExecutor.java:110) >> >> >> >> nc.bs.uap.scheduler.impl.TaskExecutor.run(TaskExecutor.java:75) >> >> >> >> nc.bs.framework.execute.Executor$1.run(Executor.java:80) >> >> >> >> >> nc.bs.framework.execute.commonj.impl.WorkAdaptor.run(WorkAdaptor.java:29) >> >> >> >> com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:1114) >> >> >> >> >> >> >> com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:195) >> >> >> >> com.ibm.ws.asynchbeans.CJWorkItemImpl.run(CJWorkItemImpl.java:187) >> >> >> >> com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469) >> >> >> >> >> >> >> >> >> >> Best regards, >> >> >> >> Zhuran Li >> > >> > >> > >> > >> >-- >> >*Christian Posta* >> >http://www.christianposta.com/blog >> >twitter: @christianposta >> > > > >-- >*Christian Posta* >http://www.christianposta.com/blog >twitter: @christianposta