【问题标题】:NServiceBus SQL Server Transport and SQL Persistence on different databases不同数据库上的 NServiceBus SQL Server 传输和 SQL 持久性
【发布时间】:2018-01-16 15:37:33
【问题描述】:

我正在尝试使用 SQL Server Transport 和 SQL Persistence 运行 NServiceBus 主机应用程序。当我将传输和持久连接字符串都指向同一个数据库时,一切正常。但是,当我将它们指向单独的数据库时,程序在收到第一条消息时崩溃,抛出此异常:System.Data.SqlClient.SqlException (0x80131904): Invalid object name 'persistence.MyService_MySaga'.

这是我的端点配置:

var persistenceConnection = @"Data Source=.\SqlExpress;Database=MyServicePersistence;Integrated Security=True;Max Pool Size=100;";
var transportConnection = @"Data Source=.\SqlExpress;Database=MyServiceTransport;Integrated Security=True;Max Pool Size=100;";

var endpointConfiguration = new EndpointConfiguration("MyService");
endpointConfiguration.SendFailedMessagesTo("error");
endpointConfiguration.AuditProcessedMessagesTo("audit");
endpointConfiguration.EnableInstallers();

var transport = endpointConfiguration.UseTransport<SqlServerTransport>();
transport.ConnectionString(transportConnection);
transport.UseSchemaForQueue("error", "dbo");
transport.UseSchemaForQueue("audit", "dbo");
transport.Transactions(TransportTransactionMode.SendsAtomicWithReceive);

var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.SqlVariant(SqlVariant.MsSqlServer);
persistence.ConnectionBuilder(() => new SqlConnection(persistenceConnection));
persistence.Schema("persistence");

var subscriptions = persistence.SubscriptionSettings();
subscriptions.CacheFor(TimeSpan.FromMinutes(1));

可能值得注意:如果我将 TransportTransactionModeSendsAtomicWithReceive 更改为 None,我可以防止引发异常。但是我不想这样做,因为它会导致所有失败的消息直接进入错误队列,绕过所有重试。

【问题讨论】:

    标签: sql-server persistence nservicebus transport


    【解决方案1】:

    您似乎在我们的实现中发现了一个错误,感谢您提出它。

    我在 SQL 持久性 repo 中创建了一个问题,您可以跟踪它there

    我们很可能会在即将到来的新专业中发布修复程序,希望对您有用。你能指出问题有多紧迫吗?

    【讨论】:

    • 实际上,我刚刚发现我们团队的其他人已经就这个问题与 Particular 的其他人(我相信是西蒙?)进行了联系。就紧迫性而言,我不会说这是非常紧迫的,因为有解决方法。但是,这些变通方法并不完全适合我们的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多