2 Replies Latest reply on Feb 5, 2009 11:13 AM by timfox

    DetectDuplicates does not work??

    mclu

      Hi!

      Non clustered environment!!
      2 Servers
      Messaging between them I am using a bridge with a remoteproviderloader.
      I uses QOS 2 ( transacted mode )
      I just upgraded to 1.4.2 GA

      No I have read in the docs than maybe QOS 1 (dups allowed) with detectduplicates set to true is enough.
      So I made a test.

      At the Bridge I added a breakpoint at Bridge.sendBatchNonTransacted().

      Then I did (or the Bridge did ) the following steps:
      1. the Bridge sends the messages to the target.
      2. the target session is commited
      ---> Messages are processed not at the target
      3. NOW I KILL THE SERVER WITH THE BRIDGE
      ---> means the messages are not acknowledged on the source

      4. I restared the server with the bridge
      5. Messages are send again which is ok I think
      6. BUT NOW the receiving server accepts the messages. I debugged into the code and the JDBCPersistenManager.cacheID detects the duplicate and updates the idcache. BUT nothing more?

      I thought that detectduplicates means that the duplicate message is dropped on the server if already received once?!?

      Is this wrong?



        • 1. Re: DetectDuplicates does not work??
          mclu

          typo corrections:

          Point 2:
          --> Messages are processed NOW at the target.

          NOT makes no sense :-)

          • 2. Re: DetectDuplicates does not work??
            timfox

            In JBM 1.x duplicate detection specifically refers to duplicate detection on failover, i.e. a message sent before failover will not get sent again after failover.

            It does not refer to more general duplicate detection on a non clustered server.

            In JBM 2.0 we have more general duplicate detection that is designed for both the non clustered and clustered case.

            For JBM 1.x if you are using dups_ok on your bridge, you can introduce your own duplicate detection at the application level at the point of consumption.