Releases: Particular/NServiceBus.SqlServer
2.0.0 beta1
As part of this release we had 3 issues closed.
Improvements
#38 Move to .net 4.5
related to Particular/NServiceBus#2078
#3 Improve error reporting in SqlServerPollingDequeueStrategy
If you neglect to Configure.Instance.ForInstallationOn<Windows>().Install()
, SqlServer transport will not create its tables. Later the SqlServerPollingDequeueStrategy
will have exceptions because the objects does not exist.
The issue is that the exception reported to log is
WARN NServiceBus.Transports.SQLServer.SqlServerPollingDequeueStrategy - Failed to connect to the configured SqlServer
The message is inaccurately reporting a connection failure.
Content trimmed. See full issue
#32 Expose the SqlConnection used to receive incoming messages
You can now access the IDbConnection
and SqlTransaction
from your own sagas and/or handlers.
To do this inject SqlServerStorageContext
Bugs
#29 Using transport with no DTC
This issue is raised as part of the diagnosing of #17
The problem is that to prevent DTC escalation we cannot use nested ADO connections from within a handler, so we need a way to expose both the ado connection + ado transaction to the end user.
Here is what @andreasohlund said:
Did some research and it seems escalation wont happen if "the connections are not open at the same time"
http://stackoverflow.com/a/1693270/236004
Since we keep the connection open during receive I believe the escalation will happen when a second connection is opened. To fix this we need to share the connection or have the users use our native transaction. Does this make sense?
Content trimmed. See full issue
Where to get it
You can download this release from nuget
1.2.2
As part of this release we had 5 commits which resulted in 1 issue being closed.
Bugs
#33 Under load a shutdown could cause current messages to not complete processing
When performing a shutdown while messages were being processed, the current processing messages could end pre-maturely causing an exception to be logged and a graceless shutdown.
Where to get it
You can download this release from nuget
1.2.1
As part of this release we had 2 commits which resulted in 1 issues being closed.
Bugs
#30 NServiceBus.CastleWindsorBuilder can't resolve SqlServerMessageSender.ConnectionStringCollection
When a message arrives in the queue, I get the following exception multiple times. Following trace is from the component "UnicastBus", but i get it from every level in NServiceBus where the message passes.
Castle.Windsor Warning: 0 : Exception when resolving optional dependency Dependency 'MessageSender' type 'NServiceBus.Transports.ISendMessages' on component NServiceBus.Unicast.UnicastBus., Castle.MicroKernel.ComponentActivator.ComponentActivatorException: Error setting property SqlServerMessageSender.ConnectionStringCollection in component NServiceBus.Transports.SQLServer.SqlServerMessageSender. See inner exception for more information.
If you don't want Windsor to set this property you can do it by either decorating it with DoNotWireAttribute or via registration API.
Alternatively consider making the setter non-public. ---> System.NullReferenceException: De objectverwijzing is niet op een exemplaar van een object ingesteld.
bij Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.SetUpProperties(Object instance, CreationContext context)
--- Einde van intern uitzonderingsstackpad ---
bij Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.SetUpProperties(Object instance, CreationContext context)
bij Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext context)
bij Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext context, Burden burden)
bij Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.CreateInstance(CreationContext context, Boolean trackedExternally)
Content trimmed. See full issue
Where to get it
You can download this release from nuget
1.2.0
As part of this release we had 20 commits which resulted in 3 issues being closed.
Features
#15 Support for sending to queues in different databases
When sending a message the MessageSender will check if a specific connectionstring is defined for this queue. If that is the case, the other connectionstring will be used.
The extra connectionstrings can be configured in the web.config like this:
<connectionStrings>
<add name="NServiceBus/Transport" connectionString="Data Source=.;Initial Catalog=DBForReceiveQueue; Integrated Security=True" />
<add name="NServiceBus/Transport/Queue1Name" connectionString="Data Source=.;Initial Catalog=DBForQueue1; Integrated Security=True" />
<add name="NServiceBus/Transport/Queue2Name" connectionString="Data Source=.;Initial Catalog=DBForQueue2; Integrated Security=True" />
</connectionStrings>
Content trimmed. See full issue
Bugs
#17 HasActiveTransaction in UnitOfWork class returns true even if the transaction for the current thread has been cleared
The use of IsValueCreated is incorrect, because it will return true regardless if the value is null or not.
public bool HasActiveTransaction()
{
return currentTransaction.IsValueCreated;
}
The believe the method should check for null values.
public bool HasActiveTransaction()
Content trimmed. See full issue
Where to get it
You can download this release from:
- Or nuget
1.1.0
This release consist of these issues that were achieved through these commits.
Features
#4 Add ReturnToSourceQueue script for Sql Server
Raised by @jerrosenberg
Migrated from by Particular/NServiceBus#1434
Bugs
#12 Not using same native transaction
When disabling DTC, we were not using the same native SQLClient transaction for both the receive and sends.
Where to get it
You can download this release from: