我们最近将 NServiceBus 项目从版本 4 升级到版本 5。我们使用 NHibernate 将数据存储到 SQL 服务器数据库。自升级以来,我们开始遇到连接超时和 TimeoutEntity 表的错误。NServiceBus 服务运行良好一段时间 - 至少几个小时,然后它们停止。
在调查其原因时,似乎是对 TimeoutEntity 表的轮询查询 - 查询每分钟完成一次,如果查询需要超过 2 秒才能完成,则会引发错误并调用 CriticalError.Raise - 这会导致NServiceBus 停止服务。
一种调查方法是找出超时的原因,但我们也想知道为什么更改此功能 - 在 NServiceBus 的先前版本中,调用 Logger.Warn 而不是 CriticalError.Raise。有人知道为什么在 NServiceBus 5 中进行了这种更改,以及我们可以做些什么来缓解它吗?