You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Jerry Cwiklik (JIRA)" <de...@uima.apache.org> on 2010/11/17 21:47:15 UTC

[jira] Commented: (UIMA-1658) UIMA AS worker does not respond to client initialize after failover

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

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

I have tried to make the failover work with AMQ 5.3.2 and 5.4.1 with no luck. The behavior seems different from the problems reported earlier in this JIRA. After the failover, the UIMA AS service (consumer) gets a message from the broker but it is unable to deliver it to the temp reply queue of the client. It fails with: javax.jms.InvalidDestinationException: Cannot publish to a deleted Destination: temp-queue://ID:jxxxxxxx

I created a pure jms producer and consumer to eliminate a possible bug in UIMA AS. The bare bones producer sends 1 message to a consumer and expects a reply. With pure Master-Slave configuration and both brokers running there are no problems. If I kill the Master, I see two problems:

1) Occasionally the Consumer process terminates after a failover occurs with:

Nov 17, 2010 1:36:36 PM org.apache.activemq.transport.failover.FailoverTransport handleTransportFailure
WARNING: Transport (XXXXX:61616) failed to tcp://XXXX:61616 , attempting to automatically reconnect due to: java.io.EOFException

This exception is supposedly expected, but the process should remain running. The consumer process broker URLis failover://(tcp://host1:61616,tcp://host2:61618)?randomize=false. 

2) If the Consumer process survives problem#1 (ie.keeps running after failover), the next problem happens on reply. The Consumer process tries to reply to a temp queue provided in a message by the Producer (client). It uses a MessageProducer object and Session that were created and cached during a previous (successful) message exchange while both brokers were up. After the failover though, the Consumer fails with:

Nov 17, 2010 1:40:31 PM org.apache.activemq.transport.failover.FailoverTransport handleTransportFailure
WARNING: Transport (XXXX:61616) failed to tcp://XXX:61616 , attempting to automatically reconnect due to: java.io.EOFException
Nov 17, 2010 1:40:31 PM org.apache.activemq.transport.failover.FailoverTransport doReconnect
INFO: Successfully reconnected to tcp://YYYY:61618
Consumer Received Message - Reply Destination:temp-queue://ID:XXXX-57934-1290019237590-0:0:1
javax.jms.InvalidDestinationException: Cannot publish to a deleted Destination: temp-queue://ID:XXXX-53953-1290019223427-0:0:1

In jConsole I can see that the temp queue is created in both brokers. The temp queues have different IDs though. As I understand AMQ failover, it should be automatic and transparent. There are a few JIRAs in AMQ related to Pure-Master failover so I think that this problem is AMQ related and propose to close this JIRA. I will create a JIRA for AMQ. Do you agree Jorn?



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