你目前正处于脱机状态,正在等待 Internet 重新连接

一个通用脚本资源使用的 Windows Server 2003 服务器群集停止响应的长的时间段

针对 Windows Server 2003 的支持已于 2015 年 7 月 14 日终止。

Microsoft 已于 2015 年 7 月 14 日终止了对于 Windows Server 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 811685
症状
在群集中群集的活动的通用脚本资源可能停止响应。群集管理器和 $ Cluster.exe 似乎停止响应 (挂起)。群集日志显示了被阻止的线程内通用脚本资源。例如:
000007c4.000007e4::2002/12/12-19:17:03.781 信息 [调频] FmpRmOnlineResource: 为资源 f37f58fb-03ff-44b3-a4d7-086b0838d73d gdwQuoBlockingResources 上调用 InterlockedIncrement
在事件日志包含类似于下面的任一消息:

事件 ID: 1232年
事件类型: 错误
事件源: ClusSvc
群集通用脚本资源 MyScript 超时。联机脚本入口点未及时完成执行。这可能是由于无限循环或此入门中的挂起或挂起超时可能对此资源来讲太短。请查看联机的脚本入口点,以确保没有无限循环或脚本的代码中的挂起,然后请考虑增加挂起超时值,如有必要。在命令外壳程序中运行"群集"MyScript"res/属性 PersistentState = 0"将禁用此资源,然后在停止群集服务运行"净停止 clussvc"。请确保在脚本代码中的任何问题已修复。要启动群集服务,然后运行"net start clussvc"。如有必要,确保挂起超时时间会增加之前再次使资源联机。

事件 ID: 1233年
事件类型: 错误
事件源: ClusSvc
群集通用脚本资源 MyScript: 执行联机操作的请求将不会被处理。这是因为先前的失败尝试按及时的方式执行联机的入口点。请检查以确保没有没有无限循环或一个挂起中,该入口点的脚本代码,然后请考虑增加挂起超时值资源,如有必要。在命令外壳程序中运行"群集 res"MyScript"/ 专业人员 PersistentState = 0"将禁用此资源,然后在停止群集服务运行"净停止 clussvc"。请确保在脚本代码中的任何问题已修复。 要启动群集服务,然后运行"net start clussvc"。如有必要,确保挂起超时时间会增加之前再次使资源联机。

原因
通用脚本资源脚本可能会导致整个群集停止响应或没有响应,如果存在任何满足以下条件:
  • 通用脚本资源脚本中包含一个无限循环 (并因此永远不会退出)。
  • 呼叫 (api) 正在进行的某些群集的应用程序编程接口。呼叫,某些群集 api 必须能避免从资源 DLL 或资源脚本中,因为它们可能会导致群集范围死锁。此脚本可能会调用群集 api 或 $ 起始 Cluster.exe (这可能会导致调用群集 api,必须避免) 作为步骤之一。有关不应从资源 DLL 或脚本中调用的 api,请参阅函数调用以避免在资源 dll Microsoft 平台 SDK (PSDK) 中。
  • 通用脚本资源脚本正在执行的操作所用的时间超过挂起超时值。
若要不必将无限期挂起情况群集资源监视器拒绝执行任何操作 (如联机、 脱机、 IsAlive 和 LooksAlive) 在脚本上后的任何操作已超过挂起超时值。执行该资源上的通用脚本资源操作任何其他尝试都将导致在本文"症状"一节中显示的第二个事件日志消息。
解决方案
任何入口点已超过挂起超时值,但有问题的线程将继续运行后,群集资源监视器将不会执行一个通用脚本资源的任何其他操作。 若要解决该问题,禁用资源 (也就是使其联机),停止 (终止有问题的线程) 的群集服务、 修复脚本问题和然后重新启动群集服务。具体取决于这一问题根源,您可能希望增加联机或脱机挂起超时对这个资源的值。有关详细步骤的指令,请参阅"恢复和重新开始群集服务部分本文中稍后介绍。

更改挂起超时值

群集资源的任何操作应完成也在挂起超时的范围内执行代码。由于这个原因不会更改超时值不全面地了解为什么您脚本的入口点超过该时间段。此外,请考虑增加此值,因为群集将会停止响应,直到超过超时值的所有影响。

恢复和重新启动群集服务

  1. 通过键入以下命令禁用 (在此示例,命名 MyScript) 资源,请执行以下操作:
    群集资源"MyScript"/properties PersistentState = 0
  2. 当前拥有通过键入以下命令控制台窗口中的此资源的组在节点上停止群集服务,请执行以下操作:
    净停止 clussvc
  3. 修复任何问题,您确定在脚本中,从而导致其停止响应、 循环,或超过挂起超时值。您可能确定适当的操作是增加挂起超时值,但请确保您仔细考虑这样的含义。
  4. 重新启动群集服务,通过键入以下命令:
    net start clussvc
  5. 通过使用群集管理器或 Cluster.exe 手动使资源联机。要这样做键入以下命令:
    群集资源 MyScript / 联机
    请注意,使该资源重新联机自动设置为 1,PersistentState,这样就无需将值从 0 更改一个附加的命令。
状态
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中的错误。
mscs 通用脚本挂起死锁

警告:本文已自动翻译

属性

文章 ID:811685 - 上次审阅时间:02/28/2007 21:29:14 - 修订版本: 4.3

Microsoft Windows Server 2003 Standard Edition, Microsoft Windows Server 2003 Enterprise Edition, Microsoft Windows Server 2003 Datacenter Edition, Microsoft Windows Server 2003 Web Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, 64-Bit Datacenter Edition

  • kbmt kbbug KB811685 KbMtzh
反馈