【问题标题】:NServiceBus 4.6.5 NHibernate Saga Persister not persisting Saga DataNServiceBus 4.6.5 NHibernate Saga Persister 不持久化 Saga 数据
【发布时间】:2014-09-23 09:58:37
【问题描述】:

我将 NServiceBus 与 NHibernate 一起使用,并在我自己的进程中托管总线。我使用的配置是:

Configure.ScaleOut(s => s.UseSingleBrokerQueue());
        Configure.Transactions.Enable();
        Configure.Features.Enable<Sagas>();
        Configure.Serialization.Xml();

        return
            Configure.With()
                     .DefaultBuilder()
                     .DefiningCommandsAs(type => type.Namespace != null && type.Namespace.EndsWith("Contracts.Commands"))
                     .DefiningEventsAs(type => type.Namespace != null && type.Namespace.EndsWith("Contracts.Events"))
                     .DefiningMessagesAs(type => type.Namespace != null && type.Namespace.EndsWith("Contracts.Messages"))
                     .RijndaelEncryptionService()
                     .UseTransport<RabbitMQ>()
                     .PurgeOnStartup(false)
                     .UnicastBus()
                     .RunHandlersUnderIncomingPrincipal(false)
                     .ImpersonateSender(false)
                     .LoadMessageHandlers()
                     .UseNHibernateSubscriptionPersister()
                     .UseNHibernateSagaPersister()
                     .UseNHibernateTimeoutPersister()
                     .DisableTimeoutManager()
                     .CreateBus()
                     .Start
                (() => {
                     Configure.Instance.LicensePath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "NServiceBus-Licence.xml"));
                     Configure.Instance.ForInstallationOn<Windows>().Install();
                 });

与:

<connectionStrings>
    <add name="NServiceBus/Transport" connectionString="host=localhost" />
    <add name="NServiceBus/Persistence" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=testdb;Persist Security Info=True; Connect Timeout=200; Pooling=True; Max Pool Size=5000; Async=true; Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
    <add key="NServiceBus/Persistence/NHibernate/dialect" value="NHibernate.Dialect.MsSql2012Dialect" />
    <add key="NServiceBus/Persistence/NHibernate/connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
    <add key="NServiceBus/Persistence/NHibernate/connection.driver_class" value="NHibernate.Driver.Sql2008ClientDriver" />
</appSettings>

此配置使用我在我的 saga 中指定的字段在我的 SQL Server 数据库中为我的 sagas 创建表,这很棒。

但是,当我的 Saga 运行并完成时,NServiceBus 似乎没有将记录插入到我的 saga 表中。

表格在那里,只是没有数据。

这应该是预期的吗? saga 成功完成后,NServiceBus 是否会删除持久性中的 saga 条目?

【问题讨论】:

    标签: nhibernate persistence nservicebus nservicebus4 nservicebus-sagas


    【解决方案1】:

    我自己的问题的答案是是的。

    NServiceBus 在 saga 完成后删除 saga 数据表中的条目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多