先日、遠隔地の拠点に新たにADサーバを立てた時に、回線が細すぎてADレプリケーション に失敗するという、「こんなの初めて!」な現象に出くわした。(結構レアだと思う)
状況を確認するためrepadmin /showrepl を叩くと、下記のようなエラーが表示された。
「結果は 1818(0x71a)」とはこれいかに。
マイクロソフトの判断の是非はさておき、RPCのタイムアウト値を長くすることでこの問題は解決する。
レジストリエディタで
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
にDWORD値 "RPC Replication Timeout (mins)" を追加し、
値を45に設定し、再起動すればOK。
see also:Active Directory Replication Tools and Settings
発生したエラー
遠隔地のサーバでDCPROMOを実行し、無事終了したので、SYSVOLおよびntds.ditのレプリケーションが完了するまで見守ることにしたのだが、どうもntds.ditのレプリケーションが途中で止まってしまったようで、あるファイルサイズから一向に増えなくなってしまった。状況を確認するためrepadmin /showrepl を叩くと、下記のようなエラーが表示された。
C:\>repadmin /showrepl (snip) ==== 入力方向の近隣サーバー====================================== DC=****,DC=****,DC=**,DC=** *****\******** (RPC 経由) DSA オブジェクト GUID: ********-****-****-****-************ 2012-01-21 19:16:08 の最後の試行は、失敗しました。結果は 1818(0x71a): リモート プロシージャ コールが取り消されました。 7 回連続で失敗しました。 最後に成功したのは (never) です。 (snip)
「結果は 1818(0x71a)」とはこれいかに。
対処法:RPCタイムアウト値を変更
どうもWindows Server 2003以降は、ADのレプリケーション処理におけるRPCのタイムアウト値は5分になっているらしい。で、5分以内にレプリケーション元サーバからRPC応答が完了しないと、タイムアウトしてしまう。2000の頃は45分だったそうなので、ずいぶん短くされてしまったものだが、裏を返せば2000年から2003年にかけて世の中の通信事情がずいぶん良くなって、マイクロソフトとしては「5分でイケる」と判断したのであろう。マイクロソフトの判断の是非はさておき、RPCのタイムアウト値を長くすることでこの問題は解決する。
レジストリエディタで
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
にDWORD値 "RPC Replication Timeout (mins)" を追加し、
値を45に設定し、再起動すればOK。
see also:Active Directory Replication Tools and Settings