Pierre, in my last posting I meant maxRetries=1, not retryCount=1. JC
On Mon, Mar 28, 2011 at 12:05 PM, Jaroslaw Cwiklik <uim...@gmail.com> wrote: > Pierre, I've identified the bug in UIMA AS code that causes the problem > described. As a workaround, set the retryCount=1 in the error handling > configuration for the delegate defined in your deployment descriptor. Here > is an example: > > <remoteAnalysisEngine key="NoOp" > > <inputQueue endpoint="NoOpAnnotatorQueue" > brokerURL="${BrokerURL}"/> > <serializer method="xmi"/> > <asyncAggregateErrorConfiguration> > <processCasErrors maxRetries="1" > timeout="15000" thresholdCount="1" thresholdAction="terminate" /> > </asyncAggregateErrorConfiguration> > </remoteAnalysisEngine> > > This should force creation of a new listener on the delegate reply queue. > > The listener recovery should be done with no retry being set and I will > make necessary changes in the code to support that use case. > > Thanks for finding the bug! > > JC > > On Tue, Mar 22, 2011 at 1:12 PM, Jaroslaw Cwiklik <uim...@gmail.com>wrote: > >> Pierre, this appears to be a bug. In the scenario you've described the >> uima as aggregate client should detect a lost connection (which it does) and >> create a new one on a subsequent process CAS request destined to the remote >> delegate. I will attempt to re-create your scenario and see if this is in >> fact a bug. >> >> Thanks, JC >> >> >> On Tue, Mar 22, 2011 at 7:11 AM, Pierre Pujalon <ppuja...@yahoo.fr>wrote: >> >>> Hi, >>> I'm currently using UIMA-AS 2.3.1rc5 and I am having issues with >>> asynchronous delegated .. >>> >>> I have a chain of several annotators. One of them is an asynchronous >>> delegate as it is very resource consuming. >>> So I have one UIMA service with a simpleChainDescriptor and several UIMA >>> services with myDelegateAnnotatorDescriptor. >>> >>> When the activeMQ broker fails and restart, all my UIMA services >>> resfresh succesfully their JMS connection. But it appears that the service >>> holding the processing chain (simpleChainDescriptor) itself does not >>> refresh the JMS connection to the delegate JMS queue. >>> When a new CAS is processed, I have the following exception in the >>> console !!!! and the processing of the cas stop silently and passes to the >>> next cas. >>> If I restart the service holding the chain, everything go back to >>> normal. >>> >>> Is this a bug or am I missing something? >>> >>> Thanks, >>> Pierre >>> >>> >>> ATTENTION: Uima AS Service:simpleChainDescriptor Listener Established >>> Connection to Broker: tcp://brokerurl:61616 >>> 22 mars 2011 11:11:00 >>> org.apache.uima.adapter.jms.activemq.UimaDefaultMessageListenerContainer >>> handleListenerSetupFailure >>> ATTENTION: Uima AS Service:simpleChainDescriptor Listener Established >>> Connection to Broker: tcp://brokerurl:61616 >>> 22 mars 2011 11:11:00 >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel >>> invalidateConnectionAndEndpoints >>> INFO: Controller simpleChainDescriptor Invalidating JMS Connection To >>> Broker tcp://brokerurl:61616 and Closing Sessions To Delegates >>> 22 mars 2011 11:11:01 >>> org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl send >>> ATTENTION: Service: simpleChainDescriptor Runtime Exception >>> 22 mars 2011 11:11:01 >>> org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl send >>> ATTENTION: >>> org.apache.uima.aae.error.DelegateConnectionLostException: >>> Controller:simpleChainDescriptor Lost Connection to >>> Delegate:myDelegateAnnotatorDescriptor >>> at >>> org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.send(JmsEndpointConnection_impl.java:536) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.send(JmsEndpointConnection_impl.java:507) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel.dispatch(JmsOutputChannel.java:1366) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel.sendCasToRemoteEndpoint(JmsOutputChannel.java:1527) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel.serializeCasAndSend(JmsOutputChannel.java:658) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel.sendRequest(JmsOutputChannel.java:610) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.dispatch(AggregateAnalysisEngineController_impl.java:2381) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.dispatchProcessRequest(AggregateAnalysisEngineController_impl.java:2421) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.simpleStep(AggregateAnalysisEngineController_impl.java:1294) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.executeFlowStep(AggregateAnalysisEngineController_impl.java:2302) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.process(AggregateAnalysisEngineController_impl.java:1229) >>> at >>> org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:118) >>> at >>> org.apache.uima.aae.handler.input.ProcessResponseHandler.cancelTimerAndProcess(ProcessResponseHandler.java:108) >>> at >>> org.apache.uima.aae.handler.input.ProcessResponseHandler.handleProcessResponseWithCASReference(ProcessResponseHandler.java:387) >>> at >>> org.apache.uima.aae.handler.input.ProcessResponseHandler.handle(ProcessResponseHandler.java:656) >>> at >>> org.apache.uima.aae.handler.HandlerBase.delegate(HandlerBase.java:149) >>> at >>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:973) >>> at >>> org.apache.uima.aae.spi.transport.vm.UimaVmMessageListener.onMessage(UimaVmMessageListener.java:107) >>> at >>> org.apache.uima.aae.spi.transport.vm.UimaVmMessageDispatcher$1.run(UimaVmMessageDispatcher.java:70) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >>> at java.lang.Thread.run(Thread.java:619) >>> 22 mars 2011 11:11:01 >>> org.apache.uima.aae.error.handler.ProcessCasErrorHandler handleError >>> ATTENTION: Service: simpleChainDescriptor Runtime Exception >>> 22 mars 2011 11:11:01 >>> org.apache.uima.aae.error.handler.ProcessCasErrorHandler handleError >>> ATTENTION: >>> org.apache.uima.aae.error.DelegateConnectionLostException: >>> Controller:simpleChainDescriptor Lost Connection to >>> Delegate:myDelegateAnnotatorDescriptor >>> at >>> org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.send(JmsEndpointConnection_impl.java:536) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsEndpointConnection_impl.send(JmsEndpointConnection_impl.java:507) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel.dispatch(JmsOutputChannel.java:1366) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel.sendCasToRemoteEndpoint(JmsOutputChannel.java:1527) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel.serializeCasAndSend(JmsOutputChannel.java:658) >>> at >>> org.apache.uima.adapter.jms.activemq.JmsOutputChannel.sendRequest(JmsOutputChannel.java:610) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.dispatch(AggregateAnalysisEngineController_impl.java:2381) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.dispatchProcessRequest(AggregateAnalysisEngineController_impl.java:2421) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.simpleStep(AggregateAnalysisEngineController_impl.java:1294) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.executeFlowStep(AggregateAnalysisEngineController_impl.java:2302) >>> at >>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.process(AggregateAnalysisEngineController_impl.java:1229) >>> at >>> org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:118) >>> at >>> org.apache.uima.aae.handler.input.ProcessResponseHandler.cancelTimerAndProcess(ProcessResponseHandler.java:108) >>> at >>> org.apache.uima.aae.handler.input.ProcessResponseHandler.handleProcessResponseWithCASReference(ProcessResponseHandler.java:387) >>> at >>> org.apache.uima.aae.handler.input.ProcessResponseHandler.handle(ProcessResponseHandler.java:656) >>> at >>> org.apache.uima.aae.handler.HandlerBase.delegate(HandlerBase.java:149) >>> at >>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:973) >>> at >>> org.apache.uima.aae.spi.transport.vm.UimaVmMessageListener.onMessage(UimaVmMessageListener.java:107) >>> at >>> org.apache.uima.aae.spi.transport.vm.UimaVmMessageDispatcher$1.run(UimaVmMessageDispatcher.java:70) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >>> at java.lang.Thread.run(Thread.java:619) >>> >>> >>> >> >