Hide Forgot
Description of problem: When the same MDB is deployed on two (or more) EAP servers and one is killed, number of received and stored messages is greater then number of sent messages. Steps to Reproduce: 1. checkout https://svn.devel.redhat.com/repos/jboss-qa/mrg/tests/ha 2. fix annotation in /mdb-ejb/src/main/java/org/jboss/test/mdb/MRGJCAMessageBean.java to point to your MRG server 3. replace hibernate dialect in /mdb-ejb/src/main/resources/META-INF/persistence.xml (if you use another db then mysql51) 4. compile with mvn -DskipTests clean package 5. configure eap to use mysql51 db for defaultDS and defaultXADS (or another db with xa transactions support) 6. copy mdb/mdb-test/target/ha-kill-mrg-test.ear to deploy directory of EAP 5.1.1 (profile production) 7. checkout https://svn.devel.redhat.com/repos/jboss-qa/mrg/qpid-java-jca 8. configure qpid-java-jca/qpid-jca-ds.xml to point to your MRG server anc copy it with qpid-ra.rar to deploy directory of eap production profile 9. start mrg //enabled to store messages through restart 10. copy production profile to production2 11. replace hibernate.hbm2ddl.auto value in /mdb-ejb/src/main/resources/META-INF/persistence.xml to "validate", build it by maven once-again and copy mdb/mdb-test/target/ha-kill-mrg-test.ear to production2 deploy directory (this is because hibernate on second node cannot create the db schema again). 12. Start EAP production profile by the command bin/run.sh -c production -g DocsPartition -u 239.255.48.232 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-default and wait till it's started completely 13. Start EAP production2 profile by the command bin/run.sh -c production2 -g testpart -u 239.255.48.232 -Djboss.messaging.ServerPeerID=2 -Djboss.service.binding.set=ports-01 and wait till it's started completely 14. Go to http://localhost:8080/servlet/mrgtest?op=send&count=2000 - this send 2000 messages to queue, that is consumed by both MDBs 15. while the MDBs receive messages (on both nodes, you should see in the server.log), kill second node (production2) by kill -9 ${correct_pid} 16. after all messages are processed, check number of messages in db by http://localhost:8080/servlet/mrgtest?op=get-count, in db will be more messages than it was sent. Actual results: Received more messages that were sent. Expected results: To receive exact amount of messages (number, which was sent) The similar behavior is when killed (second) EAP node is restarted again.
*** This bug has been marked as a duplicate of bug 742150 ***