fix and test updates for: https://issues.apache.org/jira/browse/AMQNET-416
diff --git a/src/main/csharp/NetTxConnection.cs b/src/main/csharp/NetTxConnection.cs
index d42e83c..114e7b0 100644
--- a/src/main/csharp/NetTxConnection.cs
+++ b/src/main/csharp/NetTxConnection.cs
@@ -32,6 +32,7 @@
public class NetTxConnection : Connection, INetTxConnection
{
private NetTxRecoveryPolicy recoveryPolicy = new NetTxRecoveryPolicy();
+ private Guid configuredResourceManagerId = Guid.Empty;
public NetTxConnection(Uri connectionUri, ITransport transport, IdGenerator clientIdGenerator)
: base(connectionUri, transport, clientIdGenerator)
@@ -62,9 +63,19 @@
set { this.recoveryPolicy = value; }
}
+ public Guid ConfiguredResourceManagerId
+ {
+ get { return this.configuredResourceManagerId; }
+ set { this.configuredResourceManagerId = value; }
+ }
+
internal Guid ResourceManagerGuid
{
- get { return GuidFromId(this.ResourceManagerId); }
+ get
+ {
+ return ConfiguredResourceManagerId != Guid.Empty ?
+ ConfiguredResourceManagerId : GuidFromId(ResourceManagerId);
+ }
}
private static Guid GuidFromId(string id)
diff --git a/src/main/csharp/NetTxConnectionFactory.cs b/src/main/csharp/NetTxConnectionFactory.cs
index 09ce90c..49ab30b 100644
--- a/src/main/csharp/NetTxConnectionFactory.cs
+++ b/src/main/csharp/NetTxConnectionFactory.cs
@@ -26,6 +26,7 @@
public class NetTxConnectionFactory : ConnectionFactory, INetTxConnectionFactory
{
private NetTxRecoveryPolicy recoveryPolicy = new NetTxRecoveryPolicy();
+ private Guid configuredResourceManagerId = Guid.Empty;
public NetTxConnectionFactory() : base(GetDefaultBrokerUrl())
{
@@ -50,6 +51,12 @@
{
}
+ public String ConfiguredResourceManagerId
+ {
+ get { return this.configuredResourceManagerId.ToString(); }
+ set { this.configuredResourceManagerId = new Guid(value); }
+ }
+
public INetTxConnection CreateNetTxConnection()
{
return (INetTxConnection) base.CreateActiveMQConnection();
@@ -65,6 +72,7 @@
NetTxConnection connection = new NetTxConnection(this.BrokerUri, transport, this.ClientIdGenerator);
connection.RecoveryPolicy = this.recoveryPolicy.Clone() as NetTxRecoveryPolicy;
+ connection.ConfiguredResourceManagerId = this.configuredResourceManagerId;
return connection;
}
diff --git a/src/test/csharp/DtcBasicTransactionsTest.cs b/src/test/csharp/DtcBasicTransactionsTest.cs
index 8977461..88ebf5f 100644
--- a/src/test/csharp/DtcBasicTransactionsTest.cs
+++ b/src/test/csharp/DtcBasicTransactionsTest.cs
@@ -15,6 +15,7 @@
* limitations under the License.
*/
+using System;
using System.Threading;
using Apache.NMS.ActiveMQ.Transactions;
using NUnit.Framework;
@@ -25,12 +26,21 @@
[Category("Manual")]
class DtcBasicTransactionsTest : DtcTransactionsTestSupport
{
+ private NetTxConnectionFactory factory = null;
+
+ [SetUp]
+ public override void SetUp()
+ {
+ base.SetUp();
+
+ this.factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
+ this.factory.ConfiguredResourceManagerId = Guid.NewGuid().ToString();
+ }
+
[Test]
[ExpectedException("Apache.NMS.NMSException")]
public void TestSessionCreateFailsWithInvalidLogLocation()
{
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -49,8 +59,6 @@
// Test initialize - Fills in DB with data to send.
PrepareDatabase();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -75,8 +83,6 @@
PurgeDatabase();
PurgeAndFillQueue();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
diff --git a/src/test/csharp/DtcConsumerTransactionsTest.cs b/src/test/csharp/DtcConsumerTransactionsTest.cs
index 0720c20..ccce80f 100644
--- a/src/test/csharp/DtcConsumerTransactionsTest.cs
+++ b/src/test/csharp/DtcConsumerTransactionsTest.cs
@@ -31,6 +31,17 @@
[Category("Manual")]
class DtcConsumerTransactionsTest : DtcTransactionsTestSupport
{
+ private NetTxConnectionFactory factory = null;
+
+ [SetUp]
+ public override void SetUp()
+ {
+ base.SetUp();
+
+ this.factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
+ this.factory.ConfiguredResourceManagerId = Guid.NewGuid().ToString();
+ }
+
[Test]
public void TestRedelivered()
{
@@ -39,7 +50,6 @@
PurgeAndFillQueue();
// receive just one
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.Start();
@@ -103,7 +113,6 @@
PurgeDatabase();
PurgeAndFillQueue(messageCount);
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.Start();
@@ -175,7 +184,6 @@
PurgeDatabase();
PurgeAndFillQueue(messageCount);
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.Start();
@@ -246,7 +254,6 @@
PurgeDatabase();
PurgeAndFillQueue(messageCount);
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
// allow no redelivery so that message immediatly goes to the DLQ if first read fails
@@ -314,8 +321,6 @@
PurgeDatabase();
PurgeAndFillQueue();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -348,8 +353,6 @@
PurgeDatabase();
PurgeAndFillQueue();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -382,8 +385,6 @@
PurgeDatabase();
PurgeAndFillQueue(5 * MSG_COUNT);
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -409,8 +410,10 @@
public void TestConsumeWithDBInsertLogLocation()
{
const string logLocation = @".\RecoveryDir";
- const string newConnectionUri =
- connectionURI + "?nms.RecoveryPolicy.RecoveryLogger.Location=" + logLocation;
+ string newConnectionUri =
+ connectionURI + "?nms.RecoveryPolicy.RecoveryLogger.Location=" + logLocation +
+ "&nms.configuredResourceManagerId=" +
+ factory.ConfiguredResourceManagerId;
// Test initialize - Fills in queue with data to send and clears the DB.
PurgeDatabase();
@@ -423,7 +426,7 @@
Directory.CreateDirectory(logLocation);
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(newConnectionUri));
+ factory = new NetTxConnectionFactory(ReplaceEnvVar(newConnectionUri));
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
@@ -458,8 +461,6 @@
PurgeDatabase();
PurgeAndFillQueue();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -484,8 +485,6 @@
PurgeDatabase();
PurgeAndFillQueue();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -515,8 +514,6 @@
PurgeDatabase();
PurgeAndFillQueue();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
ITransport transport = (connection as Connection).ITransport;
@@ -549,8 +546,6 @@
PurgeDatabase();
PurgeAndFillQueue();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
ITransport transport = (connection as Connection).ITransport;
@@ -589,8 +584,6 @@
PurgeDatabase();
PurgeAndFillQueue(MSG_COUNT * BATCH_COUNT);
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
using (NetTxSession session = connection.CreateNetTxSession() as NetTxSession)
{
diff --git a/src/test/csharp/DtcProducerTransactionsTest.cs b/src/test/csharp/DtcProducerTransactionsTest.cs
index ae29eba..19f9661 100644
--- a/src/test/csharp/DtcProducerTransactionsTest.cs
+++ b/src/test/csharp/DtcProducerTransactionsTest.cs
@@ -15,6 +15,7 @@
* limitations under the License.
*/
+using System;
using System.IO;
using System.Threading;
using Apache.NMS.ActiveMQ.Transactions;
@@ -28,14 +29,23 @@
[Category("Manual")]
class DtcProducerTransactionsTest : DtcTransactionsTestSupport
{
+ private NetTxConnectionFactory factory = null;
+
+ [SetUp]
+ public override void SetUp()
+ {
+ base.SetUp();
+
+ this.factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
+ this.factory.ConfiguredResourceManagerId = Guid.NewGuid().ToString();
+ }
+
[Test]
public void TestRecoverAfterFailOnTransactionCommit()
{
// Test initialize - Fills in DB with data to send.
PrepareDatabase();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -67,8 +77,6 @@
// Test initialize - Fills in DB with data to send.
PrepareDatabase();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -100,8 +108,7 @@
// Test initialize - Fills in DB with data to send.
PrepareDatabase();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
- NetTxConnectionFactory netTxFactory = factory as NetTxConnectionFactory;
+ NetTxConnectionFactory netTxFactory = factory;
RecoveryFileLogger logger = netTxFactory.RecoveryPolicy.RecoveryLogger as RecoveryFileLogger;
string logDirectory = logger.Location;
@@ -142,10 +149,12 @@
// Test initialize - Fills in DB with data to send.
PrepareDatabase();
- const string newConnectionUri =
- connectionURI + "?nms.RecoveryPolicy.RecoveryLoggerType=harness";
+ string newConnectionUri =
+ connectionURI + "?nms.RecoveryPolicy.RecoveryLoggerType=harness" +
+ "&nms.configuredResourceManagerId=" +
+ factory.ConfiguredResourceManagerId;
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(newConnectionUri));
+ factory = new NetTxConnectionFactory(ReplaceEnvVar(newConnectionUri));
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
@@ -177,8 +186,6 @@
// Test initialize - Fills in DB with data to send.
PrepareDatabase();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -207,8 +214,6 @@
// Test initialize - Fills in DB with data to send.
PrepareDatabase();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -237,8 +242,6 @@
// Test initialize - Fills in DB with data to send.
PrepareDatabase();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -262,8 +265,6 @@
// Test initialize - Fills in DB with data to send.
PrepareDatabase();
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -292,8 +293,6 @@
[Test]
public void TestIterativeTransactedProduceWithDBDelete()
{
- INetTxConnectionFactory factory = new NetTxConnectionFactory(ReplaceEnvVar(connectionURI));
-
using (INetTxConnection connection = factory.CreateNetTxConnection())
{
connection.ExceptionListener += this.OnException;
@@ -321,6 +320,5 @@
// check messages are present in the queue
VerifyBrokerQueueCount(MSG_COUNT * 5);
}
-
}
}