If you use failover transport, there is an timeout option that can be enabled 
to address the issue.
see http://activemq.apache.org/failover-transport-reference.html




At 2013-07-16 20:32:54,lzr <jsw...@163.com> wrote:
>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