如何让 dbmail 处理 SQL Server 2005 队列中的项目?
-
08-06-2019 - |
题
当我使用 sp_send_dbmail 存储过程时,我收到一条消息,指出我的邮件已排队。然而,它似乎永远不会被交付。如果我运行以下 SQL,我可以在队列中看到它们:
SELECT * FROM msdb..sysmail_allitems WHERE sent_status = 'unsent'
此 SQL 返回 1:
SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb'
此存储过程返回 STARTED:
msdb.dbo.sysmail_help_status_sp
适当的帐户和配置文件已经设置,邮件一度可以正常运行。msdb.dbo.sysmail_event_log 中没有错误。
解决方案
可能有很多东西。例如,我已经看到(是的,实际上看到)这种情况发生在:
- 域控制器重新启动
- Exchange 服务器重新启动
- 路由器中断
- 服务帐户变更
- SQL Server 磁盘空间不足
所以直到它再次发生之前,我不会对此感到惊慌。
其他提示
你有没有尝试过
sysmail_stop_sp
然后
sysmail_start_sp
我遇到了同样的问题,这就是我能够解决它的方法。
去 Sql Agent >> 属性 >> 警报系统 >> 选中 DBMail 的启用框 并添加个人资料。
重新开始 代理从那时起就开始工作了。
希望这会有所帮助,_ub
不隶属于 StackOverflow