PRB:在纤程模式下运行服务器时不支持 SQLMail

本文的发布号曾为 CHS308604
本文已归档。它按“原样”提供,并且不再更新。
症状
如果所用的服务器在纤程模式下运行,SQLMail 可能会停止响应(挂起)。使用 sp_configure 存储过程将 lightweight pooling(轻量池)设为 ON(打开)即进入纤程模式。

SQLMail 停止响应时:
  • 您将无法调用诸如以下所示的任何新 SQLMail 功能:

    • xp_sendmail
    • xp_readmail
    • xp_findnextmsg
    • xp_deletemail

    -并且-

  • 现有 SQLMail 连接也不起作用。
从 SQL Server 的角度来看,所有新的及现有的非 SQLMail 连接通常都可正常作用。不过,也可能出现 SQL Server 不响应的情况,但非常少见。
更多信息
MAPI 和 SQLMail 均在其实现中使用“临界区”同步对象。MAPI 和 SQLMail 可能会遇到这样一种情况:初始化线程在进入临界区之后被调度出 CPU,而随后又重新被调度至另一线程。这样,重新调度至另一线程的操作可能会导致程序停止响应。根据 Microsoft Windows 32 文档的说明,进入临界区的线程必须与退出临界区的线程相同,否则不释放临界区。如果临界区不被释放,程序可能会停止响应。由于 SQLMail 和 MAPI 的这些架构限制,服务器在纤程模式下运行时,Microsoft 不建议也不支持使用 SQLMail。

参考
有关其他信息,请单击下面的文章编号,查看 Microsoft 知识库中的相应文章:
303287 BUG: DTC Transactions Fail When SQL Runs in Lightweight Pooling(错误:SQL 在轻量池中运行时 DTC 事务失败)
属性

文章 ID:308604 - 上次审阅时间:01/16/2015 23:35:08 - 修订版本: 2.1

  • Microsoft SQL Server 2000 标准版
  • kbnosurvey kbarchive kbprb KB308604
反馈