Skip to content

Releases: Particular/NServiceBus

5.1.2

07 Nov 10:56
Compare
Choose a tag to compare

As part of this release we had 11 commits which resulted in 1 issue being closed.

Bug

  • Adding an explicit configuration API for users to set the host identifier #2558

Where to get it

You can download this release from nuget

3.3.13

28 Mar 03:42
Compare
Choose a tag to compare

Bugs

#1243 Messages are being truncated to 8000 bytes when utilizing Second Level Retries and using NHibernate Timeout Persister

When utilizing Second Level Retires and using NHibernate Timeout Persister with a SQL server database, messages are being truncated to 8000 bytes prior to being persisted to the TimeoutEntity table. The following message is logged:

The fix was to explicitly set type of the column to NHibernateUtil.BinaryBlob in the mapping class.

5.1.1

04 Nov 03:31
Compare
Choose a tag to compare

As part of this release we had 3 commits which resulted in 1 issue being closed.

Bugs

#2555 MessageForwardingInCaseOfFaultConfig should not be required for sendonly

Where to get it

You can download this release from nuget

5.1.0

01 Nov 23:28
Compare
Choose a tag to compare

As part of this release we had 159 commits which resulted in 44 issues being closed.

Features

#2473 Adding a new Rx BusNotifications API

Streams added in this release:

  • MessageHasFailedAFirstLevelRetryAttempt
  • MessageHasBeenSentToSecondLevelRetries
  • MessageSentToErrorQueue

#2103 Expose a way to set TTRQ for MSMQ

Msmq in workgroup mode requires TTRQ to be set when sending.

http://serverfault.com/questions/480285/how-to-change-default-msmq-time-to-reach-queue-time

Exposed a key on the connection string ...;TimeToReachQueue=12:00:00; where the value is a parsable timespan.

#1235 Prevent saga id from being changed

If a modification of the Saga Id then an exception will be thrown

A modification of IContainSagaData.Id has been detected. This property is for infrastructure purposes only and should not be modified. SagaType: TheSagaType

#1228 Make the timeouts for our circuit breakers configurable

Improvements

#2502 Remove redundant new() constraint from Saga.RequestTimeout

Since an instance is being passed in then there is no need for a new() constraint

RequestTimeout<TTimeoutMessageType>(DateTime at, TTimeoutMessageType timeoutMessage)
RequestTimeout<TTimeoutMessageType>(TimeSpan within, TTimeoutMessageType timeoutMessage)

#2491 Obsolete Saga.RequestTimeout(Action)

Both have new() constraints and hence cannot be an interface. No need to construct an instance when the consumer can do this themselves.

RequestTimeout<TTimeoutMessageType>(TimeSpan within, Action<TTimeoutMessageType> messageConstructor) where TTimeoutMessageType : new()
RequestTimeout<TTimeoutMessageType>(DateTime at, Action<TTimeoutMessageType> action) where TTimeoutMessageType : new()

#2487 improve performance of InMemoryTimeoutPersister

An ~4x improvement in the performance of InMemoryTimeoutPersister

#2480 Change callback so they fire on replies only

#2474 Performance counter can hang

Now doing the performance counter check (counter.CounterType) in a time-bombed thread that if it doesn't return within 2 seconds we mark the counter as not "healthy".

#2457 Removed all the host related projects

As of 5.1 the Host will be on a seprarate repo/release cycle

#2447 Use Exception.ToString in headers

Store Exception.ToString() instead of Exception.StackTrace inside the NServiceBus.ExceptionInfo.StackTrace header

#2439 Remove Add-BindingRedirect from nuget install

Not needed since we are locking assembly version number to major

#2431 Remove the logging from init.ps1

It creates noise in the package manager console

#2413 Should throw an error Definition does not have a public empty constructor

For Transport, Logging and Persistence definitions.

#2367 Persistence no longer required for SendOnly endpoints

#2286 InMemorySagaPersister should use a concurrent dictionary

#2056 Handle ReflectionTypeLoadException better (included successfully loaded types)

Bugs

#2507 DataBus is looking for FileShareDatabusPath when it should not

#2501 passing null messageConstructor parameter to ReplyToOriginator will result in a null message being sent

ReplyToOriginator<TMessage>(Action<TMessage> messageConstructor) incorrectly did a null parameter check whichc resulted in a null being passed ass a message.

#2464 Impossible to register a custom IMessageSerializer

Now support two possible was to register a custom serializer.

A user can either config.UseSerialization(type of definition) or config.UseSerialization(type of serializerImplementation)

#2463 Throw from NServiceBus.MsmqUtilities.Convert will result in message loss

Fixed so when NServiceBus.MsmqUtilities.Convert throws the message will be sent to the error queue

#2407 FeatureStartupTasks are stopped too late

#2384 If handler throws a SerializationException then retries are ignored

#2352 Throw better exception when endpoint name maxes out endpoint name can max out PerformanceCounters

#2094 Incorrect logging when Retries are disabled

#2047 PerformanceCounters causes indefinite hang on bus start

#2031 Fall back to using WindowsIdentity.GetCurrent when IIS is impersonating

if Thread.CurrentPrincipal.Identity is null (which can happen in IIS impersonation) fall back to using WindowsIdentity.GetCurrent() instead of Thread.CurrentPrincipal.Identity

#2030 Add null Principal checks to WindowsIdentityEnricher

Thread.CurrentPrincipal is now checked for null

#1976 IBus.OutgoingHeaders updates can cause InvalidOperationException

Change IBus.OutgoingHeaders to a ConcurrentDictionary

#529 Headers set in handler should be visible to downstream handlers

Where to get it

You can download this release from nuget

4.7.4

31 Oct 17:46
Compare
Choose a tag to compare

As part of this release we had 1 commit which resulted in 1 issue being closed.

Bugs

#2553 4.7.x NServiceBus NuGet package does not contain Init.ps1 script

The missing file caused errors when installing NServiceBus.Host since the host Install.ps1 script tries to add config sections to the app.config file.

4.7.3

30 Oct 07:38
Compare
Choose a tag to compare

As part of this release we had 2 issues closed.

Improvements

#2515 Timeout messages should not invoke SagaNotFound handler

In the following scenarios timeouts for completed sagas can still be fired:

  • When a timeout is already retrieved from storage and queued up to be executed;
  • When the deletion of all timeouts misses to delete all of them due to stale indexes in Raven;

In the above circumstances, ISagaNotFound handlers should not be invoked.

Bugs

#2544 When sending a message from a IFindSagas.FindBy should not attempt to set saga headers

Since the saga instance does not exist at that point there is no point attempting to set the OriginatingSagaId and OriginatingSagaType headers. Such attempt would result in exception being thrown instead of sending the message as user intended.

5.0.3

27 Oct 06:28
Compare
Choose a tag to compare

As part of this release we had 4 commits which resulted in 2 issues being closed.

Bugs

#2530 When transport is configured via INeedInitialization, it does not work, defaults to MSMQ.

This is an endpoint generated by ServiceMatrix.
It configures the transport in a class that implements INeedInitialization.

public class TransportConfig : INeedInitialization
{
    public void Customize(BusConfiguration config)
    {
        config.UseTransport<NServiceBus.RabbitMQTransport>();
    }
}

Content trimmed. See full issue

#2481 DisableDistributedTransactions should default the ambient transaction to off

Double negative in distributed transaction configuration logic was causing distributed transactions to always be on even when disabled by consumer

Where to get it

You can download this release from nuget

5.0.2

24 Oct 20:44
Compare
Choose a tag to compare

As part of this release we had 1 issue closed.

Bugs

#2520 Fixing bug in distributor not notified about worker ready when handling message of to SLR

Related to this change in distributor

  • Added raising FinishedMessageProcessing when handing msg off to SLR
  • Moved raising StartedMessageProcessing so that it is invoked even for messages without ID

Where to get it

You can download this release from nuget

4.7.2

24 Oct 20:44
Compare
Choose a tag to compare

As part of this release we had 1 issue closed.

Bugs

#2520 Fixing bug in distributor not notified about worker ready when handling message of to SLR

Related to this change in distributor

  • Added raising FinishedMessageProcessing when handing msg off to SLR
  • Moved raising StartedMessageProcessing so that it is invoked even for messages without ID

Where to get it

You can download this release from nuget

4.0.9

16 Oct 19:54
Compare
Choose a tag to compare

As part of this release we had 1 issue closed.

Bugs

#2446 Saga with both IAmStartedByMessages and IHandleTimeouts for same message causes timeout to fire for empty saga

Messages handled by a saga that contains a explicit saga id should not be allowed to create a new saga if the given saga can't be found in storage. The saga loader has now been modified to check for the existence of the saga id header and also check that the message is directed to the specific saga by comparing the saga type with the saga type header.

Where to get it

You can download this release from nuget