fix nms build

This commit is contained in:
markpollack
2008-05-31 04:49:31 +00:00
parent 156b086c33
commit 35b7c3e459
2 changed files with 22 additions and 12 deletions

View File

@@ -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();
}

View File

@@ -73,9 +73,6 @@
<Compile Include="Messaging\Nms\Support\NmsAccessor.cs" />
<Compile Include="Messaging\Nms\Support\NmsUtils.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Messaging\.DS_Store" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Spring.Core\Spring.Core.2005.csproj">
<Project>{710961A3-0DF4-49E4-A26E-F5B9C044AC84}</Project>