Partager via


Exchange 2013 における警告イベント 7011、7012 について

こんにちは、Exchange サポート チームの 小林 です。

Exchange 2013 の DAG 環境 にて、パッチ適用作業などに伴いサービス状態を変更した際に、状態の矛盾を示すイベント 7011 (または 7012) が出力され、突然メールが送受信できない状態となる場合がございます。今回は、この対処方法と正常化したサービスの状態を確認する方法をご紹介いたします。

事象
===================
以下のイベント 7011 (または 7012) が出力され、突然メールが送受信できない状態となります。
--------------------------------------------------
ログの名前: Application
ソース: MSExchangeTransport
日付: 2014/05/20 18:50:55
イベント ID: 7011
タスクのカテゴリ: コンポーネント
レベル: 警告
コンピューター: testmbx01.contoso.com
説明:
ハブ転送のサービス状態が矛盾しています。現在の状態: Active。予期された状態: Inactive。
--------------------------------------------------

サーバー コンポーネントの状態とは ?
=========================================
まず今回の事象を理解する上で重要な概念であるサーバー コンポーネント の状態 (Server Component States) についてご説明いたします。

サーバー コンポーネントの状態は、Exchange 2013 にて導入された概念です。Exchange 2013 を構成する各コンポーネントのサービスを停止することなく、一時的または部分的に操作を行えない状態とするために導入されました。

実際には以下のような場面で、このサーバー コンポーネントの状態を制御しています。
-----------------------
例1) Exchange 2013 の新機能である Managed Availability* により、特定のサーバーの状態が正常ではないと判断された場合に、“Offline Responders” を使用して、ボトルネックとなる問題が解消されるまでサーバー コンポーネントを Inactive な状態とする場合
例2) Exchange 2013 に CU や SP を適用する際に、サーバーを完全に停止することはできないため、サーバー コンポーネントの状態を Inactive にした状態で実施する場合
-----------------------

サーバー コンポーネントの状態は、通常は“Active” または “Inactive” のどちらかのステータスとなります。このステータスの情報は、この状態の変更をレクエスター (Requester) と呼ばれるラベル (Functional、Maintenance など) ごとに個別に保存されます。さらに、これらの設定値は Exchange サーバーのローカル側のレジストリ、および、Active Directory (AD) 側の属性としてそれぞれ保存されています。

原因
===================
FrontendTransport コンポーネントおよび HubTransport コンポーネントに関しては、他のサービスと違いサービスのコンポーネントの状態を Active 化しても設定が即時で Active Directory 側へ反映されません。このため、パッチ適用後などサーバー コンポーネントの状態の一部の設定箇所を変更した場合にサービス状態に矛盾が生じます。この結果、矛盾が生じた場合に優先される Inactive 状態としてサービスの状態が認識され、メールの送受信が行われない状況となります。なお、このサービス状態の矛盾は、Requester (Functional、Maintenance など) ごとに個別に保持しているサービス状態が異なる場合にも発生します。

対処方法
===================
以下の手順にて、各 Requester のサービス状態、および、それぞれのローカル側、AD 側の設定を全て統一する必要がございます。

1. Exchange サーバー上にて、管理シェルより以下のコマンドを実行します。

・メンテナンス モードをアクティブへ
Set-ServerComponentState testmbx01 –Component ServerWideOffline –State Active –Requester Maintenance

・ファンクション モードをアクティブへ
Set-ServerComponentState testmbx01 –Component ServerWideOffline –State Active –Requester Functional

2. コマンド実行後、上述のコマンドにて変更したローカル側の設定を AD 側に反映するため、Microsoft Exchange Transport サービスを再起動します。

実施後の確認方法
===================

1. コマンドにて、ローカルの設定と AD の設定を確認する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Exchange 管理シェルにて、以下のコマンドを実行し、メンテナンス モードとファンクション モードのそれぞれにつき、ローカルのレジストリ設定値、および、AD 上の設定値を確認することができます。

・サーバーのステータス情報を取得する
$test = get-servercomponentstate -Identity testmbx01 -Component ServerWideOffline

・Exchange サーバー (ローカル) の設定を確認する
$test.LocalStates

・Exchange サーバー (AD) の設定を確認する
$test.RemoteStates

2. イベント ログにて最終的に決定したステータスを確認する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
サービス状態の矛盾が解消されると、ソース “MSExchangeTransport” (または “MSExchangeFrontendTransport”) から出力されるイベント 7009 にて確定したサービスの状態 (Active または Inactive) を確認いただけます。

[参考情報]
以下のブログにも詳細をご案内しておりますので、併せてご参照いただければと存じます。

Title: Server Component States in Exchange 2013
URL: https://blogs.technet.com/b/exchange/archive/2013/09/26/server-component-states-in-exchange-2013.aspx

Title: Set-ServerComponentState
URL: https://technet.microsoft.com/ja-jp/library/jj218699(v=exchg.150).aspx

[注釈]
Managed Availability*
-----------------------
Exchange 2013 に新たに導入された可用性機能です。各 Exchange 2013 サーバーの 各プロトコル (ActiveSync/AutoDisocver/ECP/IMAP/EWS/OWA/POP/PowerShell/SMTP など) や各コンポーネント (Transport/Store/UM など) が正常であるかどうか定期的に監視し、異常が検知されると予め定義されている自動修復アクション (Recovery Action) が実行されます。

※ 本情報は、Exchange 2013 CU3 以上の DAG 環境にて検証を行った結果となります。Exchange 2013 のバージョンによりましては、動作が変わる場合がございますのでご留意ください。

今後も当ブログおよびサポート チームをよろしくお願いいたします。