クラスター ログにおける MSMQ エラーについて

こんにちは。Windows プラットフォーム サポートの野村です。今回はクラスター ログに記録される MSMQ エラーについてご紹介します。

PowerShell の Get-ClusterLog コマンドレットまたは、管理者権限のコマンドプロンプトにて cluster log /g を実行することでクラスター ログを生成できます。生成したログを確認すると以下のエラーが記録されていることがございます。

ERR   [RHS] s_RhsRpcCreateResType: ERROR_NOT_READY(21)’ because of ‘Startup routine for ResType MSMQ returned 21.’

WARN  [RCM] Failed to load restype ‘MSMQ': error 21.

ERR   [RHS] s_RhsRpcCreateResType: ERROR_NOT_READY(21)’ because of ‘Startup routine for ResType MSMQTriggers returned 21.’

WARN  [RCM] Failed to load restype ‘MSMQTriggers': error 21.

 

<原因>

上述のエラーは、クラスター サービスにリソースの種類として “MSMQ” と “MSMQTriggers” が登録されているものの、MSMQ リソース DLL を読み込めない場合に記録されます。多くの場合、MSMQ の機能がインストールされていないために MSMQ リソース DLL もインストールされておらず、発生するエラーとなります。

 

<考えられる対応方法>

1. 無視する

これらは “MSMQ” と “MSMQTriggers” を利用していない場合には、記録されていても影響の無いイベントですので無視しても問題ございません。クラスターの機能に何も影響を与えず、障害を示すイベントでもございません。

 

2. MSMQ の機能をインストールする

“MSMQ” と “MSMQTriggers” を利用する場合には、サーバー マネージャーを開いて "メッセージ キュー" の機能をクラスターの全てのノードにインストールしてください。これで、上述のエラーは記録されなくなります。

 

3. MSMQ リソースの登録を削除する

“MSMQ” と “MSMQTriggers” を利用しない場合、リソースの種類 “MSMQ” と “MSMQTriggers” の登録を削除します。こうすることで、上述のエラーは記録されなくなります。PoweShell の Remove-ClusterResourceType コマンドレットにより登録の削除が可能ですので、PowerShell のウインドウを開いて、以下のコマンドレットを実行してください。

PS C:\> Remove-ClusterResourceType MSMQ

PS C:\> Remove-ClusterResourceType MSMQTriggers

 

<まとめ>

MSMQ のエラーは MSMQ をインストールしていない場合には無視可能で、一種のノイズのようなものと考えていただいて構いません。これらのイベントがどうしても気になったり、MSMQ を利用する予定が無い場合は、MSMQ リソース タイプの登録を削除してください。

 

<参考情報>

- MSMQ Errors in the Cluster.log

https://blogs.msdn.microsoft.com/clustering/2013/04/05/msmq-errors-in-the-cluster-log/

-【IDM】MSMQ を使って確実なユーザー登録を行う その1 ~ MSMQ って何してくれるの?

https://blogs.technet.microsoft.com/junichia/2008/06/24/idmmsmq-1-msmq-12390/