VideoStore.NHibernate
MSMQ ではなくNServiceBus サンプル ( Githubから) を動作させようとしています ( SqlServerTransport
MSMQ にも RavenDb にも依存したくありません)。
次のようにして、このサンプルを MsmqTransport ではなく SqlServerTransport を使用するように切り替えました。
- NserviceBus.SqlServer に適切な NuGet パッケージを追加する
- 各 app/web.config に適切な接続文字列を追加する
これらの新しい設定でサンプルを実行すると、NServiceBus.ExtensionMethods
静的クラスに、 SqlServerTransport に切り替えたときにSetMessageHeader
スローされるメソッドが呼び出されていることがわかります。InvalidOperationException
public static void SetMessageHeader(this ISendOnlyBus bus, object msg, string key, string value)
{
IManageMessageHeaders manageMessageHeaders = bus as IManageMessageHeaders;
if (manageMessageHeaders == null)
throw new InvalidOperationException("bus does not implement IManageMessageHeaders");
manageMessageHeaders.SetHeaderAction(msg, key, value);
}
SqlServerTransport
メッセージヘッダーをサポートしていないということですか?
私たちの決定に関連して、SQL Server トランスポートでサポートされていないものは他にありますか?
利用可能な機能/トランスポート マトリックスはありますか?
アップデート:
わかりました、多分私はここで銃を飛ばしました。https://github.com/Particular/NServiceBus.SqlServer.Samplesは、SqlServerTransport がメッセージ ヘッダーと Sagas をサポートしていることを示唆しているようです。
アップデートⅡ
永続性 (NHibernatePeristence) とトランスポート (SqlServerTransport) の両方に同じデータベースを使用すると問題が発生するようです。役割ごとに別々のデータベースを使用することで、問題が解決したようです。
機能のサポートに関して、SqlServerTransport を使用することに何らかの欠点があるかどうかを知りたいですか?