首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL Server 2005 數據庫郵件突然發送失敗:升級 SP4 修復

     編輯:程式設計綜合問答

故障現象

SQL Server 2005 數據庫郵件運行一年多突然失敗,錯誤日誌顯示:

Exception Type: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException
Message: 無法從隊列中檢索項。
StackTrace: ... CommandFactory.CreateSendMailCommand ...

郵件服務器配置正常,本地測試可發送,僅生產環境異常。

根本原因

SQL Server 2005 早期版本存在已知 Bug,導致 Database Mail 引擎在特定條件下(如隊列積壓、連接池耗盡)無法正確處理郵件發送命令,拋出 BaseException。

解決方案

  1. 升級至 Service Pack 4 (SP4):微軟在 SP4 中修復了 Database Mail 相關的多個穩定性問題。
  2. 下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=26727(需選擇對應架構 x86/x64/IA64)。
  3. 升級前備份數據庫與 msdb 郵件配置。

驗證步驟

-- 升級後執行測試
EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'YourProfile',
    @recipients = 'test@example.com',
    @subject = 'SP4 Upgrade Test',
    @body = 'If you see this, SP4 fixed the issue.';

備選方案(若無法升級)

  • 重啟 SQL Server Agent 服務臨時緩解。
  • 檢查 sysmail_event_log 定期清理舊日誌防止表膨脹。
  • 考慮遷移至更新版本 SQL Server(2012+)獲得長期支持。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved