Shuttle / Shuttle.Esb.Sql

Sql-based (various databases) implementation of ISubscriptionManager and IIdempotenceService for use with Shuttle.Esb.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Shuttle.Esb.Sql

Deprecated: This package is no longer maintained. Please make use of the individual packages as you need them:

Microsoft Sql RDBS implementation for use with Shuttl.Esb:

  • SubscriptionManager implements ISubscriptionManager
  • IdempotenceService implements iIdempotenceService
  • SqlQueue implements IQueue

Supported providers

In order to use the relevant provider you need to register an IScriptProviderConfiguration that tells the various components where to find the relevant scripts:

var container = new WindsorComponentContainer(new WindsorContainer());

container.Register<IScriptProviderConfiguration>(new ScriptProviderConfiguration
{
    ResourceAssembly = typeof (SqlQueue).Assembly,
    ResourceNameFormat = "Shuttle.Esb.Sql.Scripts.System.Data.SqlClient.{ScriptName}.sql"
});

Currently only the System.Data.SqlClient provider name is supported but this can easily be extended. Feel free to give it a bash and please send a pull request if you do go this route. You are welcome to create an issue and assistance will be provided where able.

SqlQueue

There is a IQueue implementation for Sql Server that enables a table-based queue. Since this a table-based queue is not a real queuing technology it is prudent to make use of a local outbox.

Configuration

The queue configuration is part of the specified uri, e.g.:

    <inbox
      workQueueUri="sql://connectionstring-name/table-queue"
	  .
	  .
	  .
    />

In addition to this there is also a Sql Server specific section (defaults specified here):

<configuration>
  <configSections>
    <section name='sqlServer' type="Shuttle.Esb.Sql.SqlSection, Shuttle.Esb.Sql"/>
  </configSections>
  
  <sqlServer
	subscriptionManagerConnectionStringName="Subscription"
	idempotenceServiceConnectionStringName="Idempotence"
  />
  .
  .
  .
<configuration>

SubscriptionManager

A Sql Server based ISubscriptionManager implementation is also provided. The subscription manager caches all subscriptions forever so should a new subscriber be added be sure to restart the publisher endpoint service.

IdempotenceService

A IIdempotenceService implementation is also available for Sql Server.

About

Sql-based (various databases) implementation of ISubscriptionManager and IIdempotenceService for use with Shuttle.Esb.

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C# 87.8%Language:TSQL 12.2%