activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "zachary.zhang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMQ-4619) lose messages in Shared File System Master/Slave while swich master to slave quickly and many times
Date Fri, 05 Jul 2013 08:47:48 GMT

     [ https://issues.apache.org/jira/browse/AMQ-4619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

zachary.zhang updated AMQ-4619:
-------------------------------

    Description: 
There are two activemq instance in my pc, they are in  Shared File System Master/Slave with
kahaDB model. 
1 set up the consumer listener and  receive message use failover protocol .
2 set up the producer to send message use failover protocol. the message total is 6000.
3 close the master actviemq , so the slave can replace the master to work.
repeat the step 3 many times (more than 5) and quickly.

result:
1 the producer will throw exception several times:
javax.jms.TransactionRolledBackException: Transaction completion in doubt due to failover.
Forcing rollback of TX:ID:wcmis175-55198-1372489851858-1:1:643
                at org.apache.activemq.state.ConnectionStateTracker.restoreTransactions(ConnectionStateTracker.java:231)
                at org.apache.activemq.state.ConnectionStateTracker.restore(ConnectionStateTracker.java:169)
                at org.apache.activemq.transport.failover.FailoverTransport.restoreTransport(FailoverTransport.java:821)
                at org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:996)
                at org.apache.activemq.transport.failover.FailoverTransport$2.iterate(FailoverTransport.java:143)
                at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
                at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
                at java.lang.Thread.run(Thread.java:722)

2 sometimes it will lose messages in consumer side (for example producer send 6000 messages
,throw 8 exceptions , the consumer will receive 5998 messages).I don't know where the lost
messages going.


So ,I think this bug is dangerous if it was really exsit. Someetimes we must use failover
switch the master and slave,and we don't want to face losing messages.


  was:
There are two activemq instance in my pc, they are in  Shared File System Master/Slave with
kahaDB model. 
1 set up the consumer listener and  receive message use failover protocol.
2 set up the producer to send message. the total is 6000.
3 close the master actviemq , so the slave can replace the master to work.
repeat the step 3 many times (more than 5) and quickly.

result:
1 the producer will throw exception several times:
javax.jms.TransactionRolledBackException: Transaction completion in doubt due to failover.
Forcing rollback of TX:ID:wcmis175-55198-1372489851858-1:1:643
                at org.apache.activemq.state.ConnectionStateTracker.restoreTransactions(ConnectionStateTracker.java:231)
                at org.apache.activemq.state.ConnectionStateTracker.restore(ConnectionStateTracker.java:169)
                at org.apache.activemq.transport.failover.FailoverTransport.restoreTransport(FailoverTransport.java:821)
                at org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:996)
                at org.apache.activemq.transport.failover.FailoverTransport$2.iterate(FailoverTransport.java:143)
                at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
                at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
                at java.lang.Thread.run(Thread.java:722)

2 sometimes it will lose messages in consumer side (for example producer send 6000 messages
,throw 8 exceptions , the consumer will receive 5998 messages).I don't know where the lost
messages going.


So ,I think this bug is dangerous if it was really exsit. Someetimes we must use failover
switch the master and slave,and we don't want to face losing messages.


    
> lose messages in  Shared File System Master/Slave while swich master to slave quickly
and many times
> ----------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-4619
>                 URL: https://issues.apache.org/jira/browse/AMQ-4619
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client, Message Store
>    Affects Versions: 5.8.0
>         Environment: pc(computer), windows 7(os), Shared File System Master/Slave
>            Reporter: zachary.zhang
>              Labels: security
>             Fix For: 5.x
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> There are two activemq instance in my pc, they are in  Shared File System Master/Slave
with kahaDB model. 
> 1 set up the consumer listener and  receive message use failover protocol .
> 2 set up the producer to send message use failover protocol. the message total is 6000.
> 3 close the master actviemq , so the slave can replace the master to work.
> repeat the step 3 many times (more than 5) and quickly.
> result:
> 1 the producer will throw exception several times:
> javax.jms.TransactionRolledBackException: Transaction completion in doubt due to failover.
Forcing rollback of TX:ID:wcmis175-55198-1372489851858-1:1:643
>                 at org.apache.activemq.state.ConnectionStateTracker.restoreTransactions(ConnectionStateTracker.java:231)
>                 at org.apache.activemq.state.ConnectionStateTracker.restore(ConnectionStateTracker.java:169)
>                 at org.apache.activemq.transport.failover.FailoverTransport.restoreTransport(FailoverTransport.java:821)
>                 at org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:996)
>                 at org.apache.activemq.transport.failover.FailoverTransport$2.iterate(FailoverTransport.java:143)
>                 at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
>                 at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
>                 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>                 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>                 at java.lang.Thread.run(Thread.java:722)
> 2 sometimes it will lose messages in consumer side (for example producer send 6000 messages
,throw 8 exceptions , the consumer will receive 5998 messages).I don't know where the lost
messages going.
> So ,I think this bug is dangerous if it was really exsit. Someetimes we must use failover
switch the master and slave,and we don't want to face losing messages.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message