0
我们计划在多个NSB主机之间共享相同的持久性数据库(NserviceBus/Persistence)。如何在NserviceBus/Persistence SQL实例中配置不同的表名称:
在这种情况下,我们需要根据主机区分TimeOutEntity,MessageStore,OutboxRecord 。
有没有一种配置方式来指定主机在NSB持久性数据库中使用的表名。
我们计划在多个NSB主机之间共享相同的持久性数据库(NserviceBus/Persistence)。如何在NserviceBus/Persistence SQL实例中配置不同的表名称:
在这种情况下,我们需要根据主机区分TimeOutEntity,MessageStore,OutboxRecord 。
有没有一种配置方式来指定主机在NSB持久性数据库中使用的表名。
而不是使用不同的表名来存储每个端点,我建议保持名称相同,但使用不同的模式,与端点/业务相匹配。使用开箱即用的表名就意味着更容易的使用体验,因为您可以准确地指向端点的表。
要更改SQL持久性的架构,你可以这样做:
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.Schema("myschema");
对于SQL传输你可以这样做的:
var transport = endpointConfiguration.UseTransport<SqlServerTransport>();
transport.DefaultSchema("myschema");
//For error/audit queues
transport.UseSchemaForQueue("error", "myschema");
transport.UseSchemaForQueue("audit", "myschema");
有关部署选项(多目录VS架构信息)看看文档页面here。
谢谢哈迪。我们正在使用Nhibernatepersistence。因此我认为改变Schema就是这样。 var pers = configuration.UsePersistence(); pers.UseConfiguration(新配置() { 属性= { 新KeyValuePair <字符串,字符串>(NHibernate.Cfg.Environment.DefaultSchema “MYSCHEMA”) } }); –
我是否也应该更改UseTransport中的架构 –