Skip to content

Releases: by-pinja/Protacon.RxMq

v4.0.0: Setting Expansions And Deprecations

10 Jan 06:28
b8542a6
Compare
Choose a tag to compare

What's Changed

deprecate legacy projects

Legacy projects were exclusively for generating assemblies for .net framework 4.5. Latest framework supported is now 4.8 and 4.5 support is removed.

Added timestamp support to received messages

User can configure via appsettings.json whether an arrival timestamp is added to every received message. By default timestamp is not added but needs to be configured separately either via settings file or AzureBusTopicSettings.cs.

{
    "Logging": {
        "LogLevel": {
            "Default": "Information"
        }
    },
    "MessagingSettings": {
        ...
        "AddArrival": true
    }
}

Arrival time is of type nullable long and the value is unix time in milliseconds. It appears in the data payload as a field rxmqarrival.

[JsonProperty("rxmqarrival")]
public long? RxMqArrival { get; set; }

Add support for Topic settings PrefetchCount and ReceiveMode

Allow consumer to configure either generally or topic by topic bases PrefetchCount and ReceiveMode for Topic Subscription Client. PrefetchCount allows consumer to control how many messages are received from topic at once. ReceiveMode controls how does the subscription client behave in regards to receiving messages. There are two modes currently supported:

  • PeekLock means Service Bus will wait for confirmation from client that messages has been received
  • ReceiveAndDelete means Service Bus will delete message as soon as it has departed the topic regardless of client status

Defaults to 0 and PeekLock.

Default settings example:

{
    "Logging": {
        "LogLevel": {
            "Default": "Information"
        }
    },
    "MessagingSettings": {
        ...
        "DefaultPrefetchCount": 0,
        "DefaultReceiveMode": "PeekLock"
    }
}

To determine PrefetchCount and ReceiveMode on topic basis, implement IConfigurableTopicItem interface.

Full Changelog: 3.1.0...4.0.0

Correlation ID support for Legacy

22 Feb 12:30
a61af2c
Compare
Choose a tag to compare
  • Add support for CorrelationId in topic messages for Legacy implementation
  • Note that Legacy does not use ILogger implementation for logging

What's Changed

  • Similar CorrelationId binding as done by @Hekku2 in #32

Full Changelog: 3.0.0...3.1.0

Update Microsoft.Azure.ServiceBus to latest

03 Feb 07:46
00eade4
Compare
Choose a tag to compare

Update Microsoft.Azure.ServiceBus to latest.

Correlation ID support

01 Feb 08:46
5efd486
Compare
Choose a tag to compare
  • Add support for CorrelationId in topic messages
  • Add more context to logged messages

What's Changed

  • Utilize ILogger formatting for netcore-implementation by @Hekku2 in #32

Full Changelog: 2.0.0...2.1.0

Add net472 and net48 support and update dependencies

19 Nov 09:53
fb40fd1
Compare
Choose a tag to compare

This release removes net461 support which is a breaking change. Adds net472 and net48 targeting support.

  • Drop net461 support from non-Legacy
  • Add net48 support for non-Legacy
  • Add net472 and net48 support for Legacy
  • Add net472 to net48 for non-Legacy
  • Update deps based on targeting framework. When applicant, updates:
    • Newtonsoft.Json 10.0.3 -> 13.0.1
    • System.Reactive 3.1.1 -> 5.0.0
  • Shared dep updates as following:
    • FluentAssertions 4.19.4 -> 5.1.2
    • Microsoft.NET.Test.Sdk 15.3.0-preview -> 15.6.0
    • Microsoft.NETFramework.ReferenceAssemblies 1.0.0 -> 1.0.2

Lifecycle Topic Publisher binding enhancement

27 May 12:07
1c78991
Compare
Choose a tag to compare

Fixes

  • Concurrent calls to same topic publisher when binding is created, where one thread could pontentially get stuck to lifecycle-long loop where addition to ConcurrentDictionary cannot be made as it already exists in it

Entity already exists support for topic subscription (Legacy)

29 Apr 05:08
99b2b34
Compare
Choose a tag to compare

Adds

  • Add support for Topic subscription for Legacy project to manage existing entities
    • When active subscriber is changes e.g. on network failure, support internally the subscriber change, and manage possible exsisting subscription from the previous client having these network or other problems
    • One scenario could be two subscribers where A is active and B passive. A has network or server failure, and traffic is moved to B. B is now active and A passive. B will subscribe to same messages as A was. This can cause EntityAlreadyExsists -type exceptions on certain cases. Handle these internally.
    • Now client can optionally implement Delete Subscription -logic when creating message subscriber - but is no longer necessary

SendAsync thread safety and logging configuration

29 Jan 13:28
ef4d5c1
Compare
Choose a tag to compare

SendAsync thread safety and logging configuration plus bug fix

SendAsync thread safety and logging configuration

29 Jan 11:32
84a7da5
Compare
Choose a tag to compare

SendAsync thread safety (topic)

Logging configuration (exclude by queue or topic name)

Retry policy to Service Bus

14 Sep 11:47
c188fc0
Compare
Choose a tag to compare

Added retry policy for newer Service Bus (not legacy)
Added MessageId to logging, so that MessageId can be found if new Azure support request for messaging is needed