0
我有一个NServiceBus处理程序,处理Tiff创建事件。通常创建TIFF需要1-5分钟。我在总线配置中使用NHibernatePersistence和SqlServerTransport。NServiceBus处理长时间运行的进程 - 事务
处理程序创建Tiff时,关联的数据库总线表被锁定。所以其他任何事件都会排在后面。
有没有办法允许其他Tiff事件被处理?
我有一个NServiceBus处理程序,处理Tiff创建事件。通常创建TIFF需要1-5分钟。我在总线配置中使用NHibernatePersistence和SqlServerTransport。NServiceBus处理长时间运行的进程 - 事务
处理程序创建Tiff时,关联的数据库总线表被锁定。所以其他任何事件都会排在后面。
有没有办法允许其他Tiff事件被处理?
默认情况下,所有数据库操作都是分布式事务的一部分。
您不太清楚要防止的锁定类型。如果这真的是一个表锁,它是如何得到一个表锁?
如果你不想锁,然后
BusConfiguration busConfiguration = new BusConfiguration();
busConfiguration.Transactions().IsolationLevel(IsolationLevel.RepeatableRead);
你在这个端点托管其他消息messagehandlers呢?在这种情况下,您应该考虑将长时间运行的流程转移到仅用于创建TIFF的单独端点。使用较长的事务超时配置此端点或完全关闭事务。 – janovesk