Skip to content

Releases: dotnetcore/CAP

8.4.0

07 Sep 06:20
024565b
Compare
Choose a tag to compare

🚀 Improvements

  • Added SchedulerBatchSize option to specify the maximum number of delayed or queued messages fetched per scheduler loop. (#1689) Thanks @yang-xiaodong
  • Dashboard UI now supports deleting single or multiple messages. (#1674) Thanks @ustaserdar
  • Updated MongoDB indexes to include a compound index on StatusName and ExpiresAt. (#1702) Thanks @demorgi
  • Standardized broker naming and improved telemetry. (#1717) Thanks @Savorboard
  • Improved reliability of MongoDB lock acquisition by reducing rollback errors. (#1722) Thanks @demorgi

🐞 Bug Fixes

  • Fixed a hang in Blazor applications when awaiting a commit transaction. (#1697)
  • Prevented unsafe reuse of RabbitMQ message body under high concurrency by copying it into a dedicated buffer before background processing. (#1727) Thanks @otemnov

Full Changelog: v8.3.5...v8.4.0

8.3.5

23 May 12:04
Compare
Choose a tag to compare

Improvements

  • When MessageTimeout and RequestTimeout are configured in Kafka’s MainConfig, CAP will no longer override them. (#1686)

Bug Fixes

  • Fixed a syntax error in MySQL when deleting expired data, and improved the deletion statement. (#1673)
  • Fixed an issue where a database exception during delayed message sending would cause the thread to exit. (#1691)

New Contributors

Full Changelog: v8.3.4...v8.3.5

8.3.4

22 Apr 14:41
Compare
Choose a tag to compare

Improvements

  • Thanks to @findersky for developing the Storage Provider for Dameng Database as a community contribution.
  • Adjusted the timing of verifying whether CAP is started. When CAP is stopped, failed messages will be persisted to storage and retried automatically once CAP is restarted. (#1238)

Bug Fixes

  • Changed RabbitMQ queue binding from asynchronous calls to synchronous blocking calls. (#1670)
  • Fixed a potential deadlock issue when updating message statuses and deleting expired messages. Thanks to @haoyk (#1672)

New Contributors

Full Changelog: v8.3.3...v8.3.4

8.3.3

22 Feb 13:41
Compare
Choose a tag to compare

Improvements

  • Introduced a FlushAsync function, which is now called within CommitAsync using the await keyword (#1629). Thanks to @PoteRii.
  • Reworked the message scheduling mechanism to be thread-safe, along with adding relevant tests (#1638). Thanks to @amimelia.
  • Eliminated the inclusion of password configuration information in RabbitMQ debug logs (#1647).
  • Upgraded to support RabbitMQ.Client version 7.0 (#1645).
  • Updated the MongoDB driver to version 3.1.0 (#1609). Thanks to @li-zheng-hao.

Bug Fixes

  • Resolved an issue causing EFCore to crash when PostgreSQL is used without Persist Security Info = true (#1643).
  • Fixed an indexing issue when sending large payloads that exceed the Postgres Include design limits (#1619).

8.3.2

05 Dec 11:37
09f2a05
Compare
Choose a tag to compare

Improvements

  • Graceful Handling of CAP Message Headers: The CAP message group header will now be overwritten instead of throwing an exception if it already exists. (#1623) Thanks to @PoteRii.
  • Custom Exception Handling for Redis Streams: Introduced support for invoking user-defined actions when exceptions occur during the consumption of Redis streams. (#1618) Thanks to @MahmoudSamir101.

Bug Fixes

  • Azure Service Bus AutoCompleteMessages Lock Issue: Resolved an issue where the AutoCompleteMessages feature in Azure Service Bus caused an invalid lock error. (#1598)

8.3.1

05 Nov 04:11
Compare
Choose a tag to compare

Features

  • Add default indexes to the database tables during creation and adjust the query SQL to utilize the optimized indexes. (#1599)
  • Improve restarting the consumer process to re-register when a Rabbit MQ queue is deleted. (#1592)

Bug Fixes

  • Fixed RabbitMQ rejct function call error. (#1608)
  • Fixed bug that when set GroupConcurrent does not work in Azure ServiceBus. (#1597)

8.3.0

09 Oct 06:49
Compare
Choose a tag to compare

Features

  • Upgraded all dependent NuGet packages to the latest versions.
  • Added a NATS option to disable dynamic subject creation for consumers (#1556). Thanks @davidterins.
  • Consumers now support the IAsyncDisposable interface (#1582).
  • Added QueueOptions for RabbitMQ transport (#1585). Thanks @apatozi.
  • Added the ShowOnlyExplicitVisibleNodes option to the dashboard for supporting Kubernetes node discovery with filtering (#1577). Thanks @apatozi.
  • Refactored to use file-scoped namespaces (#1586). Thanks @samanazadi1996.
  • Added more default retryable error codes for Kafka consumption exceptions (#1587).

Bug Fixes

  • Fixed an issue that could cause multiple retries when both UseStorageLock and EnableParallelExecute are enabled (#1560). Thanks @sampsonye.
  • Fixed a bug related to the BrokerAddress property in the Azure Service Bus transport (#1576). Thanks @mviegas.
  • Fixed a bug where AbandonMessageAsync was not called on Azure Service Bus messages when persistence fails, preventing potential message loss (#1584). Thanks @oussama-smida.
  • Fixed DateTime parsing using InvariantCulture (#1590). Thanks @NikolozGob.

8.2.0

23 Jun 11:33
Compare
Choose a tag to compare

Features

  • Add support CustomHeadersBuilder option for NATS. (#1519)
  • Add GroupConcurrent option for [CapSubscribe] to support subscriber concurrent execution. (#1537)
  • Add option for controlling reponse from CapHeader. (#1541)
  • Improvements to the "EnablePublishParallelSend" option to "true" will put tasks into the .NET thread pool in batches. (#1540)

Bug Fixed

  • Fixed issue where CapTransaction was not disposed when the transaction failed for Sql Server. (#1521)
  • Fixed NATS reconnection publish issue after restarting server. (#1542)

What's Changed

  • Upgrade dashboard npm package to vue2 latest minor version.
  • Upgrade Ngpsql to 8.0.3 to fix "Npgsql vulnerable to SQL Injection via Protocol Message Size Overflow".
  • Simplify code using deconstruction. by @xiangxiren in #1533

Full Changelog: v8.1.2...v8.2.0

8.1.2

07 May 03:08
Compare
Choose a tag to compare

Bug Fixed

  • Fixed publish exception when event outside of transaction finishing scope. (#1521) Thanks @NikolozGob
  • Fixed PublishDelay synchronization method did not wait internally.

8.1.1

21 Apr 07:50
Compare
Choose a tag to compare

Features

  • Add more granular option for AzureServiceBus. (#1514)
  • Add new options SubscriberParallelExecuteThreadCount,SubscriberParallelExecuteBufferFactor to better support parallel execte subscriber. (#1513)
  • Delete obsolete option CustomerHeader.