More info for this problem:

Producer output

     [java] Sending message: A: Message: 67 sent at: Thu Apr 03 17:34:22 EDT
20...
     [java] Sending message: A: Message: 68 sent at: Thu Apr 03 17:34:23 EDT
20...
     [java] Sending message: A: Message: 69 sent at: Thu Apr 03 17:34:23 EDT
20...
     [java] 17:34:40 WARN  Transport failed, attempting to automatically
reconnect due to: org.apache.activemq.transport.InactivityIOException:
Channel was inactive for too long: localhost/127.0.0.1:61618
     [java] 17:34:40 INFO  Successfully reconnected to tcp://localhost:61619
     [java] Sending message: A: Message: 70 sent at: Thu Apr 03 17:34:40 EDT
20...
     [java] Sending message: A: Message: 71 sent at: Thu Apr 03 17:34:40 EDT
20...
     [java] Sending message: A: Message: 72 sent at: Thu Apr 03 17:34:40 EDT
20...

Consumer output

     [java] Received: A: Message: 67 sent at: Thu Apr 03 17:34:22 EDT 20...
     [java] Received: A: Message: 68 sent at: Thu Apr 03 17:34:23 EDT 20...
     [java] Received: A: Message: 69 sent at: Thu Apr 03 17:34:23 EDT 20...
     [java] 17:34:35 WARN  Transport failed, attempting to automatically
reconnect due to: org.apache.activemq.transport.InactivityIOException:
Channel was inactive for too long: localhost/127.0.0.1:61618
     [java] 17:34:35 INFO  Successfully reconnected to tcp://localhost:61619
     [java] Received: A: Message: 34 sent at: Thu Apr 03 17:34:10 EDT 20...
     [java] Received: A: Message: 71 sent at: Thu Apr 03 17:34:40 EDT 20...
     [java] Received: A: Message: 72 sent at: Thu Apr 03 17:34:40 EDT 20...
     [java] Received: A: Message: 73 sent at: Thu Apr 03 17:34:41 EDT 20...
     [java] Received: A: Message: 74 sent at: Thu Apr 03 17:34:41 EDT 20...

Message 70 was not consumed and it is left in the database (I can also see
it in the JMX console). Also in this log, why message 34 consumed out of
order, it was put in the queue before message 69?

Starting a new consumer will not consume message 70, it look like the
lastMessageId in JDBCMessageStore has skip for some reason the id of message
70.  The only way to consume this message was to do a failover again.

Is anyone have seen this behavior?


Francois Guillemette wrote:
> 
> Hi, I'm using build version 643461 of activemq (windows XP, Java 6,
> MySQL). (svn link https://svn.apache.org/repos/asf/activemq/trunk)
> 
> Sometime, a (or some) message(s) hang in the queue while no consumer eat
> it. It happen after a failover. 
> 
> Scenario:
> 2 brokers (jdbc master/slave), 2 consumers, 2 producers
> 
> Producers :
>   ant producer
> -Durl="failover:(tcp://localhost:61618,tcp://localhost:61619)"
> -Ddurable=true -Dmax=500
> Consumer 1: 
>   ant consumer
> -Durl="failover:(tcp://localhost:61618,tcp://localhost:61619)" -Dmax=10000
> -DclientId=c1
> Consumer 2:
>   ant consumer
> -Durl="failover:(tcp://localhost:61618,tcp://localhost:61619)" -Dmax=10000
> -DclientId=c2
> 
> 1 - Start the two brokers (one will be master, the other will be slave)
> 2 - Start the producers, consumers
> 3 - Wait a little,
> 4 - Kill the master -> slave become master
> 5 - Producers continue producing, consumers continue consuming
> 6 - After all producers finish their task, the consumer will finish
> consuming, and sometimes there still messages left in the queue (in the
> database, and using JMX to see the state of the queue).
> 7 - Restart a new broker, kill the master
> 8 - The messages will be consumed
> 
> Is there something missing in my test?
> 
> I have seen older post that seem related to this problem, but I didn't
> have found any bug in Jira for this problem, is there an entry in Jira?
> 
> Thanks
> 

-- 
View this message in context: 
http://www.nabble.com/Messages-hang-in-Queue-even-when-consumers-are-present-after-failover-tp16422835s2354p16491412.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to