OrionGuard.Outbox.SqlServerBroker
6.5.12
dotnet add package OrionGuard.Outbox.SqlServerBroker --version 6.5.12
NuGet\Install-Package OrionGuard.Outbox.SqlServerBroker -Version 6.5.12
<PackageReference Include="OrionGuard.Outbox.SqlServerBroker" Version="6.5.12" />
<PackageVersion Include="OrionGuard.Outbox.SqlServerBroker" Version="6.5.12" />
<PackageReference Include="OrionGuard.Outbox.SqlServerBroker" />
paket add OrionGuard.Outbox.SqlServerBroker --version 6.5.12
#r "nuget: OrionGuard.Outbox.SqlServerBroker, 6.5.12"
#:package OrionGuard.Outbox.SqlServerBroker@6.5.12
#addin nuget:?package=OrionGuard.Outbox.SqlServerBroker&version=6.5.12
#tool nuget:?package=OrionGuard.Outbox.SqlServerBroker&version=6.5.12
OrionGuard.Outbox.SqlServerBroker
SQL Server Service Broker backed IOutboxWakeSignal for OrionGuard.EntityFrameworkCore. Sibling to OrionGuard.Outbox.PostgresNotify (v6.5.2) for the SQL Server provider.
Install
dotnet add package OrionGuard.Outbox.SqlServerBroker
Wire-up
services.AddSqlServerBrokerOutboxWakeSignal(o =>
{
o.ConnectionString = "Server=db;Database=app;User Id=app;Password=app;TrustServerCertificate=true";
});
services.AddOrionGuardEfCore<AppDbContext>(opts => opts.UseOutbox());
The hosted service opens a dedicated SqlConnection, runs WAITFOR (RECEIVE ... FROM <queue>) with a bounded timeout, and signals the dispatcher when a row arrives. The dispatcher's polling interval continues to upper-bound wake latency.
One-time setup
Service Broker must be enabled on the target database:
ALTER DATABASE [app] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
Then run the helper SQL once via an EF Core migration:
public partial class InstallOrionGuardOutboxBroker : Migration
{
protected override void Up(MigrationBuilder mb) =>
mb.Sql(SqlServerBrokerSetupSql.Create());
protected override void Down(MigrationBuilder mb) =>
mb.Sql(SqlServerBrokerSetupSql.Drop());
}
SqlServerBrokerSetupSql.Create accepts overrides for custom table / queue / service / contract / message-type names.
| 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Data.SqlClient (>= 5.2.2)
- OrionGuard.EntityFrameworkCore (>= 6.5.12)
-
net8.0
- Microsoft.Data.SqlClient (>= 5.2.2)
- OrionGuard.EntityFrameworkCore (>= 6.5.12)
-
net9.0
- Microsoft.Data.SqlClient (>= 5.2.2)
- OrionGuard.EntityFrameworkCore (>= 6.5.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.