現在オフラインです。再接続するためにインターネットの接続を待っています

汎用スクリプト リソースのサーバー クラスタが応答を停止する

Support for Windows Server 2003 ended on July 14, 2015

Microsoft ended support for Windows Server 2003 on July 14, 2015. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

現象
有効な汎用スクリプトのリソースが存在するクラスタでは、クラスタが応答しなくなることがあります。クラスタ アドミニストレータと Cluster.exe が、応答を停止 (ハングアップ) しているように見えることがあります。汎用スクリプトのリソース内でスレッドがブロックされているというメッセージがクラスタ ログに出力されます。たとえば、以下が表示されます。
000007c4.000007e4::2002/12/12-19:17:03.781 INFO [FM] FmpRmOnlineResource: called InterlockedIncrement on gdwQuoBlockingResources for resource f37f58fb-03ff-44b3-a4d7-086b0838d73d
イベント ログには、以下のいずれかのようなメッセージが含まれています。

イベント ID : 1232
イベントの種類 : エラー
イベント ソース : ClusSvc
クラスタ汎用スクリプト リソース MyScript がタイムアウトしました。 %2 スクリプトのエントリ ポイントが時間内に実行を完了しませんでした。このエントリ ポイントでの無限ループまたはハング、あるいは待ちのタイムアウトがこのリソースに対して短すぎることが原因である可能性があります。%2 スクリプトのエントリ ポイントを確認して、スクリプト コードに無限ループやハングがないことを確認し、必要な場合は待ちのタイムアウトの値を大きくすることを検討してください。コマンド シェルでは ""cluster res ""MyScript"" /prop PersistentState=0""を実行してこのリソースを無効にし、""net stop clussvc"" を実行してクラスタ サービスを停止してください。スクリプト コードの問題を確実に解決してください。その後、""net start clussvc"" を実行してクラスタ サービスを開始してください。必要に応じて、リソースを再びオンラインにする前に、待ちのタイムアウトが大きくされたことを確認してください。

または

イベント ID : 1233
イベントの種類 : エラー
イベント ソース : ClusSvc
クラスタ汎用スクリプト リソース MyScript: %2 操作の要求は処理されません。これは、前回 %3 エントリ ポイントを時間内に実行しようとして失敗したためです。スクリプト コードのこのエントリ ポイントを確認して、無限ループやハングがないことを確認し、必要な場合はリソースの待ちのタイムアウトの値を大きくすることを検討してください。コマンド シェルでは ""cluster res ""MyScript"" /prop PersistentState=0""を実行してこのリソースを無効にし、""net stop clussvc"" を実行してクラスタ サービスを停止してください。スクリプト コードの問題を確実に解決してください。その後、""net start clussvc"" を実行してクラスタ サービスを開始してください。必要に応じて、リソースを再びオンラインにする前に、待ちのタイムアウトが大きくされたことを確認してください。

原因
以下のいずれかの状態と一致する場合、汎用スクリプトのリソース スクリプトが原因で、クラスタ全体が応答を停止するか、応答しなくなる可能性があります。
  • 汎用スクリプトのリソース スクリプトには、無限ループが含まれています (したがって、終了できません)。
  • 特定のクラスタ API への呼び出しが発生しています。そのクラスタ API は、クラスタ全体のデッドロックの原因となる場合があるため、この API をリソース DLL やリソース スクリプト内で使用しないようにする必要があります。このスクリプトは、手順の 1 つとして、クラスタ API を呼び出しているか、Cluster.exe を開始していることがあります。この Cluster.exe は、回避する必要のあるクラスタ API を呼び出す可能性があります。リソース DLL またはスクリプトから呼び出してはいけない API の情報については、Microsoft Platform SDK (PSDK) の「Function Calls to Avoid in Resource DLLs」を参照してください。
  • 汎用スクリプトのリソース スクリプトが実行している操作にかかる時間が、タイムアウトまでの待ち時間の値より長くなります。
無制限にハングアップする状況を回避するために、クラスタ リソース モニタは操作が待ちのタイムアウト値を超えると、このスクリプトで Online、Offline、IsAlive、および LooksAlive などの操作を実行することを拒否します。そのリソースで汎用スクリプトのリソース操作を新たに実行しようとすると、この資料の「現象」で示している 2 つ目のイベント ログ メッセージが表示されます。
解決方法
クラスタ リソース モニタは、エントリ ポイントのいずれかがタイムアウトまでの待ち時間の値を超えた後、汎用スクリプトのリソースで新たな操作を実行しなくなります。ただし、問題のあるスレッドは引き続き動作します。この問題を解決するには、リソースを無効にし (つまり、リソースがオンラインにならないようにします)、クラスタ サービスを停止し (これにより問題のあるスレッドが終了します)、スクリプトの問題を修正して、クラスタ サービスを再開します。この問題の原因によっては、このリソースに対するオンラインまたはオフラインのタイムアウトまでの待ち時間の値を増やす必要が生じる場合があります。順を追った操作方法については、この資料の後半の「クラスタ サービスの回復と再開」を参照してください。

待ちのタイムアウト値の変更

すべてのクラスタ リソース操作は、待ちのタイムアウト値の範囲内で、実行を正常に完了する必要があります。したがって、スクリプト エントリ ポイントがこの時間を超えた理由を完全に理解するまで、待ちのタイムアウト値を変更しないでください。また、タイムアウト値を超えるまでクラスタは応答しなくなるため、この値を増加した場合に生じる影響をすべて検討してください。

クラスタ サービスの回復と再開

  1. 次のコマンドを入力して、リソースを無効にします (この例のリソース名は MyScript)。
    cluster resource "MyScript" /properties PersistentState=0
  2. コンソール ウィンドウで次のコマンドを入力し、現在このリソースのグループを所有しているノードのクラスタ サービスを停止します。
    net stop clussvc
  3. スクリプトで確認された問題 (スクリプトの応答停止、ループ、または待ちのタイムアウト値を超える原因) をすべて解決します。待ちのタイムアウト値を増加することが適切であると考えられる場合は、値を増加したときに生じる影響を注意深く検討してください。
  4. 次のコマンドを入力して、クラスタ サービスを再開します。
    net start clussvc
  5. クラスタ アドミニストレータまたは Cluster.exe を使用して、リソースを手動でオンラインに戻します。この操作を行うには、次のコマンドを入力します。
    cluster resource “MyScript” /online
    リソースをオンラインに戻すと、自動的に PersistentState が 1 に設定されるため、値を 0 から 1 に変更するための追加のコマンドは不要です。
状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 811685 (最終更新日 2003-04-09) を基に作成したものです。
mscs generic script hang deadlock
プロパティ

文書番号:811685 - 最終更新日: 05/20/2005 08:20:00 - リビジョン: 5.3

Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Web Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, 64-Bit Datacenter Edition

  • kbbug KB811685
フィードバック
t.write(" ="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">