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

Jim Gomes resolved AMQNET-503.
------------------------------
       Resolution: Fixed
    Fix Version/s: 1.7.1

Merged the fix into the trunk and into the 1.7.x branches to prepare for the 
1.7.1 release. Updated the separated NMS provider modules to create a new 1.7.x 
branch for each that will use the new NMS 1.7.1 API version.

Thanks to Jose Alvarado for submitting the fix along with the test case and 
documentation write-up. Great job!

> DTC Transactions do not respect rollbacks consistently leading to duplicated 
> messages
> -------------------------------------------------------------------------------------
>
>                 Key: AMQNET-503
>                 URL: https://issues.apache.org/jira/browse/AMQNET-503
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: ActiveMQ
>            Reporter: Jose Alvarado
>            Assignee: Jim Gomes
>             Fix For: 1.7.1
>
>         Attachments: Apache Documentation.docx, Apache.NMS.AMQNETIssue.patch, 
> Apache.NMS.ActiveMQ.AMQNETIssue.patch
>
>
> In certain circumstances, rollback does not work properly, as a result 
> duplicate messages are generated from normal DTC operations.  The 
> circumstances under which this issues occurs are:
> -     DTC transaction initiated, but fails to commit;
> -     Another DTC transaction initiated and successfully commits;
> -     When a transaction is roll backed and committed on retry;
> As a result the number of messages sent is larger to the number of messages 
> received by the target broker. Some of the messages are not roll backed when 
> it fails and they get sent again when committed on retry.
> This issue has been raised in Jira as issues 413 and 472:
> https://issues.apache.org/jira/browse/AMQNET-413
> https://issues.apache.org/jira/browse/AMQNET-472
> Analysing the code we realised that these two issues above are similar, and 
> they have the same cause. We have therefore developed a patch based on 
> feedback and unit tests provided by those two issues, where we fix the 
> problem and we pass all existing unit tests. The changes modify only code 
> related to DTC, and it was developed in .NET 2.0 as per the requirements for 
> 413/472 
> The fix implements the solution suggested in the patch for issue 472 where 
> some lock conditions were missing. In addition we have added a condition 
> where we will not lock the transaction whenever a distributed transaction 
> occurs. The DtcWaitHandle.WaitOne causes DTC transactions involving a 
> database or XA transaction to fail unit testing.
> The patch was extensively tested with over a 1000 messages (1K, 1.5K, 10K, 
> 100K, 1M) using two brokers across different servers to guarantee distributed 
> transactions. Testing also included different message sizes, infrastructure 
> setup, databases, and message content verification to validate its integrity 
> and ensure messages were not duplicated.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to