github Particular/NServiceBus.SqlServer 2.0.0

latest releases: 7.0.6, 6.3.8, 8.0.0...
9 years ago

As part of this release we had 5 issues closed.

Improvements

#48 Make callbacks and pubsub work seamlessly when scaled out

This is handled by using a secondary receive thread that polls the {endpointname}.{machinename} table. All bus.Reply|Return messages will be sent to this queue to make callbacks work.

#38 Move to .net 4.5

#32 Expose the SqlConnection used to receive incoming messages

This will allow users to reuse that connection if needed to avoid escalating to DTC tx.

The reason for DTC escallation is that even if the connection strings are the same escalation will still happen if more than 1 connection is open at the same time. This will always happen since we need to keep the receiving connection open for the duration of the receive

#3 Improve error reporting in SqlServerPollingDequeueStrategy

raised by @russellchadwick

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.

migrated from Particular/NServiceBus#1501
Content trimmed. See full issue

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:

Don't miss a new NServiceBus.SqlServer release

NewReleases is sending notifications on new releases.