为了账号安全,请及时绑定邮箱和手机立即绑定

SQL Server Service Broker 外部激活器检查点错误

SQL Server Service Broker 外部激活器检查点错误

C#
白衣非少年 2021-10-24 19:44:23
一段时间以来,我们一直在使用 Microsoft 的 Service Broker External Activator Service 来处理 Service Broker 队列的外部激活,没有问题。但是在上周,一个错误不断发生,我无法追根究底。每天至少一次,随机时间,服务会遇到错误并陷入停止状态。此时所能做的就是终止进程并重新启动服务。检查 EATrace.log 文件显示以下错误:18/07/2018 09:59:45 EXCEPTIONERROR = 90, Internal exceptions have occurred when External Activator is runtime checkpointing.18/07/2018 09:59:45 EXCEPTIONDETAILS Inner Exception:18/07/2018 09:59:45 EXCEPTIONDETAILS System.IO.IOException: Cannot create a file when that file already exists.18/07/2018 09:59:45 EXCEPTIONDETAILS 18/07/2018 09:59:45 EXCEPTIONDETAILS    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)18/07/2018 09:59:45 EXCEPTIONDETAILS    at System.IO.File.Move(String sourceFileName, String destFileName)18/07/2018 09:59:45 EXCEPTIONDETAILS    at ExternalActivator.LogManager.SaveRecoveryContext(LogRecoveryContext recoveryContext)18/07/2018 09:59:45 EXCEPTIONDETAILS    at ExternalActivator.LogManager.Checkpoint(LogRecoveryContext recoveryContext)18/07/2018 09:59:45 EXCEPTIONDETAILS    at ExternalActivator.LogManager.Log(LogRecord recoveryLogRec)18/07/2018 09:59:45 EXCEPTIONDETAILS    at ExternalActivator.ApplicationMonitor.OnProcessExited(ProcessMonitor processMonitor)18/07/2018 09:59:45 EXCEPTIONDETAILS    at ExternalActivator.ProcessMonitor.NotifySubscriber()18/07/2018 09:59:45 EXCEPTIONDETAILS    at ExternalActivator.ProcessMonitor.OnProcessExited(Object a, EventArgs b)请注意,LogFileName 是 EARecovery.rlog,TempLogFileName 是 EARecovery_temp.rlog。发生错误后检查日志文件夹时,只有临时文件,原始文件已按预期删除。我本来希望 lock 语句可以防止这种情况发生。除了通常的 Windows 更新之外,服务器上没有任何变化,负载也没有增加,但由于某种原因,这个错误从 7 月 16 日左右开始发生。打开详细日志记录,我可以看到它的检查点比我预期的要多得多,并且当错误发生时,它总是在前一个检查点的一两秒内。任何关于下一步该看哪里的帮助或指示都将不胜感激,因为我正在把我的头发扯下来。
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

这不是服务代理特有的,但我以前见过这种情况,尤其是代码:


  File.Delete(this.LogFileName);

  File.Move(this.TempLogFileName, this.LogFileName);

如果后台进程(如防病毒软件)将文件保持打开状态,则该文件可能不会立即消失。如果您正在运行防病毒软件,如 Windows Defender 或其他一些产品,您可能需要将该文件夹列入白名单,以便它不会尝试扫描文件。


我可以提出的唯一其他建议(同样无关)是清除 Windows 临时文件夹。几年前我遇到过一些事情,根据它们如何在内部命名或跟踪它们,创建大量临时文件会导致 Windows 出现问题。我没有给你的链接,我认为这不是你的问题,但你可能想尝试一下。


查看完整回答
反对 回复 2021-10-24
  • 1 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信