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)
>>
>>
>>
>

Reply via email to