Rebus.Firebird
1.0.0-beta.0.19
See the version list below for details.
dotnet add package Rebus.Firebird --version 1.0.0-beta.0.19
NuGet\Install-Package Rebus.Firebird -Version 1.0.0-beta.0.19
<PackageReference Include="Rebus.Firebird" Version="1.0.0-beta.0.19" />
paket add Rebus.Firebird --version 1.0.0-beta.0.19
#r "nuget: Rebus.Firebird, 1.0.0-beta.0.19"
// Install Rebus.Firebird as a Cake Addin #addin nuget:?package=Rebus.Firebird&version=1.0.0-beta.0.19&prerelease // Install Rebus.Firebird as a Cake Tool #tool nuget:?package=Rebus.Firebird&version=1.0.0-beta.0.19&prerelease
Rebus.Firebird
Currently Provides only a FirebirdSQL-based outbox persistence for Rebus
Configuration
Configure.With(...)
.Transport(...)
...
.Outbox(o => o.StoreInFirebird(ConnectionString, sender: "sender", tableName: "rebus_oubox"))
The sender parameter is used to identify the sender of the message in the outbox. This is useful when multiple senders are using the same outbox table.
The Firebird outbox storage will create an Index on the sender column to speed up the lookup of messages in the outbox.
The Index will be named IX_{tableName}_sender
where {tableName}
is the name of the outbox table.
So be sure to:
- use a unique sender name for each sender
- follow the Firebird naming rules for identifiers (before v4.0: 31 characters, since v4.0: 63 characters)
Usage
Outside of a Rebus handler:
start a database transaction and use the RebusTransactionScope
with UseOutbox
to use the outbox.
Example:
await using FbConnection connection = new(ConnectionString);
await connection.OpenAsync();
await using FbTransaction transaction = await connection.BeginTransactionAsync();
// this is how we would use the outbox for outgoing messages
using RebusTransactionScope scope = new();
scope.UseOutbox(connection, transaction);
await bus.Send(new SomeMessage());
await scope.CompleteAsync();
await transaction.CommitAsync();
Inside a Rebus handler: nothing special to do, the outbox will be used automatically
Reporting
You can pass an Implementation of IReportOutboxOperations
to the Outbox configuration to get reports about the outbox operations.
The Interface IReportOutboxOperations
has 6 methods:
- void ReportChecking(); // called when the outbox is checked for pending messages
- void ReportNoPendingMessages(); // called when no pending messages are found in the outbox
- void ReportSending(int count); // called when messages are sent from the outbox
- void ReportRetrying(int attempt); // called when a sending a message is retried
- void ReportSendingFailed(int count); // called when sending messages from the outbox failed
- void ReportSent(int count); // called when messages are successfully sent from the outbox
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- FirebirdSql.Data.FirebirdClient (>= 10.0.0)
- Rebus (>= 8.2.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0-beta.0.21 | 126 | 3/2/2024 |
1.0.0-beta.0.20 | 61 | 3/2/2024 |
1.0.0-beta.0.19 | 60 | 3/1/2024 |
1.0.0-beta.0.15 | 46 | 2/29/2024 |
1.0.0-beta.0.14 | 51 | 2/29/2024 |
1.0.0-beta.0.8 | 52 | 2/28/2024 |
1.0.0-beta.0.3 | 50 | 2/27/2024 |
1.0.0-beta.0.2 | 52 | 2/27/2024 |