diff --git a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/ConnectionFactoryUtils.cs b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/ConnectionFactoryUtils.cs
index 95d923e5..33595649 100644
--- a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/ConnectionFactoryUtils.cs
+++ b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/ConnectionFactoryUtils.cs
@@ -18,6 +18,7 @@
#endregion
+using System;
using Spring.Transaction.Support;
using Spring.Util;
using NMS;
@@ -134,7 +135,7 @@ namespace Spring.Messaging.Nms.IConnections
}
if (conHolderToUse != resourceHolder)
{
- TransactionSynchronizationManager.RegisterSynchronization(new NmsResourceSynchronization(resourceKey, conHolderToUse, resourceFactory.AcknowledgementMode));
+ TransactionSynchronizationManager.RegisterSynchronization(new NmsResourceSynchronization(resourceKey, conHolderToUse, resourceFactory.SynchedLocalTransactionAllowed));
conHolderToUse.SynchronizedWithTransaction = true;
TransactionSynchronizationManager.BindResource(resourceKey, conHolderToUse);
}
@@ -181,7 +182,20 @@ namespace Spring.Messaging.Nms.IConnections
public virtual ISession CreateSession(NMS.IConnection con)
{
- return con.CreateSession(synchedLocalTransactionAllowed);
+ if (synchedLocalTransactionAllowed)
+ {
+ return con.CreateSession(AcknowledgementMode.Transactional);
+ }
+ else
+ {
+ return con.CreateSession(AcknowledgementMode.AutoAcknowledge);
+ }
+
+ }
+
+ public bool SynchedLocalTransactionAllowed
+ {
+ get { return synchedLocalTransactionAllowed; }
}
}
#endregion
@@ -248,15 +262,15 @@ namespace Spring.Messaging.Nms.IConnections
private NmsResourceHolder resourceHolder;
- private AcknowledgementMode acknowledgementMode;
+ private bool transacted;
private bool holderActive = true;
- public NmsResourceSynchronization(object resourceKey, NmsResourceHolder resourceHolder, AcknowledgementMode acknowledgementMode)
+ public NmsResourceSynchronization(object resourceKey, NmsResourceHolder resourceHolder, bool transacted)
{
this.resourceKey = resourceKey;
this.resourceHolder = resourceHolder;
- this.acknowledgementMode = acknowledgementMode;
+ this.transacted = transacted;
}
public override void Suspend()
@@ -279,7 +293,7 @@ namespace Spring.Messaging.Nms.IConnections
{
TransactionSynchronizationManager.UnbindResource(this.resourceKey);
this.holderActive = false;
- if (this.acknowledgementMode != AcknowledgementMode.Transactional)
+ if (!transacted)
{
this.resourceHolder.CloseAll();
}
@@ -288,7 +302,7 @@ namespace Spring.Messaging.Nms.IConnections
//TODO bring in new Spring.Data library to Integration project which has this method in interface.
public override void AfterCommit()
{
- if (this.acknowledgementMode == AcknowledgementMode.Transactional)
+ if (this.transacted)
{
try
{
@@ -301,10 +315,9 @@ namespace Spring.Messaging.Nms.IConnections
}
}
- //TODO bring in new Spring.Data library to Integration project which has this method in interface
public override void AfterCompletion(TransactionSynchronizationStatus status)
{
- if (this.acknowledgementMode == AcknowledgementMode.Transactional)
+ if (this.transacted)
{
this.resourceHolder.CloseAll();
}
diff --git a/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.2005.csproj b/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.2005.csproj
index ce149c7f..ec908a8d 100644
--- a/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.2005.csproj
+++ b/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.2005.csproj
@@ -73,9 +73,6 @@
-
-
-
{710961A3-0DF4-49E4-A26E-F5B9C044AC84}