2017-08-08 18 views
0

SQL Server TransportとSQL Persistenceを使用してNServiceBusホストアプリケーションを実行しようとしています。私は両方のトランスポートと永続性の接続文字列を同じデータベースに指しても問題ありません。しかし、私はこの例外を投げ、その最初のメッセージを受信すると、データベース、プログラムがクラッシュを分離するためにそれらをポイントすると:NServiceBus SQL Server転送とSQL永続性が異なるデータベース

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)); 

潜在的に注目に値する:私は例外を防ぐことができますSystem.Data.SqlClient.SqlException (0x80131904): Invalid object name 'persistence.MyService_MySaga'.ここ

は私のエンドポイント構成がありますTransportTransactionModeSendsAtomicWithReceiveからNoneに変更するとスローされません。しかし、すべての失敗したメッセージがすべての再試行を迂回してエラーキューに直接送られるため、私はそれをしたくありません。

答えて

1

私たちの実装でバグを発見したようです。

SQLの永続性リポジトリに問題が発生しました。これを追跡するには、thereを使用します。

ほとんどの場合、新しい次回のメジャーで修正がリリースされる予定です。問題の緊急性を示すことができますか?

+0

実際に、私たちのチームの誰かが、この問題について、スペシャル(サイモン私は信じていますか?)の誰かとすでに接触していることを知りました。緊急の場合は、回避策があるので緊急のことではありません。しかし、私たちの状況では回避策は必ずしも望ましくありません。 – RobotJones

+0

私は理解しています、私はあなたを更新していきます! – wlabaj

関連する問題