I found the issue just this time. It worked fine for about two month with the 
ActiveMQ M/S cluster.
I've thought of the network glitch; What I feel strange most is there is no any 
error/exception on both the ActiveMQ client side and server side.
I went through the related codes and found there is a FutureResponse.getResult 
method with parameter 'timeout'. Maybe this method is more suitable for getting 
the result. Not very sure, hehe.








At 2013-07-16 20:23:01,"Christian Posta" <christian.po...@gmail.com> wrote:
>Is this something that happens all the time? Maybe your network had a
>glitch and didn't deliver the response back to the client.
>
>
>On Tue, Jul 16, 2013 at 8:18 AM, lzr <jsw...@163.com> wrote:
>
>> 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
>>
>
>
>
>-- 
>*Christian Posta*
>http://www.christianposta.com/blog
>twitter: @christianposta

Reply via email to