Как настроить NServiceBus с двумя RavenDB IDocumentStores?
В NSB 5 как правильно настроить NSB с контейнером autofac с одним IDocumentStore для данных NSB и отдельным IDocumentStore для данных приложения? Я вставил соответствующую часть EndpointConfig ниже:
// Raven DataStore for Freight system
var appDataStore = new DocumentStore {
ConnectionStringName = "RavenDB",
DefaultDatabase = "ApplicationData"
};
appDataStore .Initialize();
// Raven DataStore for NServiceBus
var nsbDataStore = new DocumentStore
{
ConnectionStringName = "NServiceBus.Persistence",
DefaultDatabase = "BookingProcessing"
};
nsbDataStore.Initialize();
// Set up and build AutoFac container
var builder = new ContainerBuilder();
builder.RegisterInstance<DocumentStore>(appDataStore ).As<IDocumentStore>().SingleInstance();
var container = builder.Build();
// Set up NServiceBus
configuration.UseContainer<AutofacBuilder>(customizations => customizations.ExistingLifetimeScope(container));
configuration.UsePersistence<RavenDBPersistence>().SetDefaultDocumentStore(nsbDataStore);
Я знаю, что это не работает, так как у меня были проблемы с хранением саг по другому вопросу. SagaPersister попытался сохранить сагу в appDataStore, но сообщения о тайм-ауте были сохранены в nsbDataStore.
2 ответа
Решение
Это образец для 4.x с использованием единицы работы, если вы используете
Посмотрите здесь, чтобы увидеть, как вы можете реализовать IManageUnitsOfWork
Инициатива здесь Посмотрите здесь для использования
это поможет?
Эта проблема теперь исправлена в NServiceBus.RavenDB v2.0.1