Windows 2008/2012 でDominoをサービスとして動かす

Windows Server に Domino をインストールする場合、Windows 2003 までは、サービスとして登録しておいても、DominoのコンソールがAdministratorのデスクトップに表示されていました。バックグラウンドで動くサービスのくせにフォアグラウンドにコンソールを出してくるという変態仕様でした。

Windows 2008以降はどんなサービスも、Session 0 で実行されアプリケーションとの対話が許可されなくなったため、そんな不思議仕様のDominoもデスクトップにコンソールを出せなくなりました。

※参考→ IBM Windows Server 2008 プラットフォームで Lotus Domino サーバーをサービス起動すると Lotus Domino コンソールが表示されない - Japan

Windows2008以降の場合、従来通りDomino コンソールにアクセスしてコマンド入力できるよう、「Lotus Domino Console」というコンソールアプリケーションがインストール時に同時に導入されますのでコレを使うことにより従来のようなコンソールへのアクセスを手に入れます。

Dominoは2050番ポートでDomino Console の接続をLISTENする仕様なのですが、初期値ではこの機能がOFFになっています。どういうことなんだ。標準のコンソールアプリまで用意しておきながら初期値では繋がらないとはどういうことなんだ。

notes.ini にTCPIP_ControllerTcpIpAddress を追記することによって2050番ポートでLISTENするようになります。

こちらの技術情報にあるようにdconsole.ini も同様に設定します → IBM Windows Server 2008 で Lotus Domino をサービスとして起動できない – Japan

さてここまで設定してもやはり繋がらないということがあります。

先ほどの手順で記述したTCPIP_ControllerTcpIpAddress のIPアドレスでLISTENするので、そのIPアドレスにつなぎに行く必要があるのですがコトはそう単純ではありません。

Domino Console はローカルのホスト名で接続に行きます。ローカルのホスト名をWindows2008/2012などに与えると、名前解決した結果そのIPアドレスIPv6ループバックアドレスである “::1” として返してきます。よって Domino Console は “::1” に接続に行こうとします。しかし LISTEN してるのは TCPIP_ControllerTcpIpAddress に記述したIPアドレスです。それじゃあいつまで経っても繋がらない。IPv6 じゃ困るんだよ。IPv4 で処理して欲しいんだよ。

IPv4 で名前解決してもらうために、レジストリに値を追加する必要があります。

こちらにあるように、IPv6で応答しないよう処理をする必要があります → Difference between ping localhost and 127.0.0.1 - Internet, Network & Security - Neowin Forums

具体的には、レジストリに値を追加するコマンドとしてはコレです。

reg add hklm\system\currentcontrolset\services\tcpip6\parameters /v DisabledComponents /t REG_DWORD /d 255

そしてホスト名からIPアドレスが出てくるように hosts ファイルに自身のIPアドレスとホスト名を書いてきます。

さてここまで準備をしておけばほぼ大丈夫です。

それでもまだダメ、繋がらない場合?どうしよっか?