[ 
https://issues.apache.org/jira/browse/UIMA-1658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12965276#action_12965276
 ] 

Jerry Cwiklik commented on UIMA-1658:
-------------------------------------

Jorn, I actually found a work around for the failover problem. The problem you 
are experiencing is in fact caused by AMQ bug. The bug is related to prefetch=0 
and failover. As described here:

http://activemq.2283324.n4.nabble.com/jira-Created-AMQ-2877-Failover-and-prefetch-0-can-result-in-hung-consumers-if-the-MessagePull-commant-td2376741.html

such a scenario leads to a consumer hang as you've been noticing. 

UIMA AS service by default uses a prefetch=0 for the service input queue. This 
is done on purpose to enable fair load balancing at a slight cost of 
throughput. Prefetch=0 means that the broker will not push messages to the 
Consumer, and instead the Consumer pulls a single message from the broker  
whenever it is ready. Such behavior facilitates fair load balancing among 
available service instances. It also reduces memory footprint of UIMA AS 
service as there are no outstanding messages in AMQ buffers to process.

Soooo, the work around is to simply change the prefetch value in the deployment 
descriptor to 1 as shown below:

<inputQueue 
brokerURL="failover:(tcp://x.y.z:portnumber1,tcp://x.y.z:portnumber2)?randomize=false"
endpoint="queue_name"
prefetch="1"/>



> UIMA AS worker does not respond to client initialize after failover
> -------------------------------------------------------------------
>
>                 Key: UIMA-1658
>                 URL: https://issues.apache.org/jira/browse/UIMA-1658
>             Project: UIMA
>          Issue Type: Bug
>          Components: Async Scaleout
>    Affects Versions: 2.3AS
>         Environment: Ubuntu 8.10 Server, Java 1.6 and ActiveMQ 5.3.0
>            Reporter: Jörn Kottmann
>
> A Pure Master Slave Broker is used to increase availability of the broker. 
> More information about it can be found in the activemq documentation:
> http://activemq.apache.org/pure-master-slave.html 
> In a test we simulated Master failure through killing the process with kill 
> -9.
> Here is the log output from the worker node:
> INFO  FailoverTransport              - Successfully connected to 
> tcp://XXX1:61616
>  Here I stopped the master broker process with kill -9 
> WARN  FailoverTransport              - Transport failed to tcp://XXX1:61616 , 
> attempting to automatically reconnect due to: java.io.EOFException
> WARN  FailoverTransport              - Transport failed to tcp://XXX1:61616 , 
> attempting to automatically reconnect due to: java.io.EOFException
> WARN  FailoverTransport              - Transport failed to tcp://XXX1:61616 , 
> attempting to automatically reconnect due to: java.io.EOFException
> INFO  FailoverTransport              - Successfully reconnected to 
> tcp://XXX2:61616
> INFO  FailoverTransport              - Successfully reconnected to 
> tcp://XXX2:61616
> INFO  FailoverTransport              - Successfully reconnected to 
> tcp://XXX2:61616 
> Afterwards the client was restarted but got a time out error during 
> initialize.
> During initializes it sends a message to the worker nodes input queue, but 
> this
> message if never retrieved.
> I used the activemq web interface to get some information about the message:
> Command     2001
> MessageFrom     ID:XXXX-51032-1257865414664-0:1:1
> ServerURI     failover:(tcp://XXX1:61616,tcp://XXX2:61616)?randomize=false
> MessageType     3000 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to