検証ルーム

2006年8月12日 (土)

【検証ルーム:003】パスワードを持ったDominoサーバーでの「Restart Server」実行(3)

 前回、岩間さんよりコメントいただきました「Restart Server」コマンドのオプションパラメータについて試してみましたのでまとめておきます。

 Restart Server [Password] [-d【秒数】]

◎Passwordパラメータ
 このパラメータは、R5以降で利用できます。再起動時にサーバーIDファイルのパスワードが自動的に入力されるというものではなく、もし「Set Secure」コマンドでパスワードを指定している場合のみ入力します。これは、故意、あるいは過失でQuit、Exit、Restart Serverコマンドを入力してDominoサーバーが停止されないようにするためのものです。

◎-d【秒数】パラメータ
 このパラメータは、Domino 6から追加されています。デフォルトでは10秒後にサーバーが再起動されますが、このパラメータで指定した秒数後に再起動させることができます。
sign01-dの後はスペースを空けずに秒数を入力しましょう!!

 なお、-dオプションを利用すると、notes.iniパラメータファイルに下記のパラメータが追加、更新されます。

  Server_Restart_Delay=【秒数】

 このパラメータによって、サーバー再起動時の間隔が決定するようです。したがって、一度「-d」オプションで再起動時の秒数を変更すると、それ以降「-d」オプションを指定しなくても変更した後の秒数、つまりnotes.iniパラメータの値を利用するようになりますのでご注意を!!

 ちなみに、R5.0.9環境で試してみたところ、「-d」オプションは無視されました。notes.iniパラメータについては、指定することで、再起動直前で表示される
 "Server shutdown complete. Server will restart in 10 seconds..."
のメッセージは変わるものの残念ながら必ず10秒後に再起動されてしまいました。
 したがって、R5環境では残念ながら再起動については、いろいろ制約がありますね〜

2006年8月 6日 (日)

【検証ルーム:002】パスワードを持ったDominoサーバーでの「Restart Server」実行(2)

ケロさんからのコメントで、Notes/Domino 6から追加された「障害復旧機能」でも同様にnrecover.exeが稼働するかどうかという追加疑問があがってまいりましたので、試してみました。
すると、「Restart Server」と同様の動きをするということが判明しました。
で、この検証を行っている際に、新たな事実が判明しましたので、以下にまとめておきます。

実は、「nrecover.exe」が稼働するのは、サーバーIDファイルにパスワードを付加している場合のみで、パスワードが無い場合は「nrecover.exe」は稼働しません。

Windowsマシン上で、Dominoサーバーを稼働させる場合には、Windowsのサービスとして稼働させる方法と、通常のアプリケーションとして稼働させる方法の2種類が存在し、Dominoサーバー起動時に下記のとおり選択できます。
I82mcidl

ここで、いずれを選択するかによって、サーバー上で以下のいずれかのプログラムが稼働します。

  サービスの場合 : nservice.exe
  通常のアプリの場合 : nsrvwrap.exe

「Restart Server」コマンドや自動復旧機能などにより、サーバーが再起動されたときに、サーバータスク(nserver.exe)が終了し、次のサーバータスクを起動するところまでの面倒をみているのはこれらのプログラムで、もしサーバーIDにパスワードが割り当てられていると、サーバー起動時にとまってしまうので、新たに「nrecover.exe」を追加して、サーバーのパスワードを引き渡す仕組みが追加されたような動きですね。

図で表すと、以下のような感じにまとめられると思います。
Q_n_mpwe_s


今回はWindowsマシンで検証しましたが、他のプラットフォームだとどうなのかも機会があれば試してみたいと思います。

奥が深いですね〜まだまだ知らないことがたくさんありそうです。
今後もいろいろ検証していきたいと思います。

2006年8月 4日 (金)

【検証ルーム:001】パスワードを持ったDominoサーバーでの「Restart Server」実行(1)

Notes仲間のせりあさんのBlogで、ふとした疑問がコメントされていたので、それが気になったので、実機で検証してみました。
その疑問とは、サーバーIDにパスワードがあると、Dominoサーバー起動時に、コンソール画面でパスワードを入力しないと進まないため、「Restart Server」コマンドをリモートコンソールで使えないね〜ということが発端であった。しかし、それに対するコメントで、こちらもNotes仲間のケロさんいわく、Notes/Domino 6からはパスワード入れなくても「Restart Server」できるようになったというものであった。
こうなると、試してみないと気が済まないし、どのように仕組みが違うのかが知りたくなる。
早速、Notes/Domino R5/6/7の3パターンで試してみた。

すると、ケロさんのおっしゃるとおり、R5はリスタート時にパスワード入力で止まり、ND6と7はパスワード入力なしに再起動が可能であった。

そこで、両者の違いを確認するために、ひとまずタスクマネージャを起動して、「Restart Server」コマンド発行時の動きを確認してみた。
なんと、ND6以降では、、「Restart Server」コマンドをたたいた瞬間に「nrecover.exe」というプロセスが起動され、Dominoサーバーのすべてのタスクが終了してコンソール画面が閉じ、再度コンソールが表示される(Dominoサーバー[nserver.exe]が起動される)タイミングで終了していることがわかった。
_sg6r4v0

どうやら、ND6以降ではこの「nrecover.exe」というプログラムが、再起動するDominoサーバープロセス間の仲介を行ってくれているため、パスワード入力が不要となっているようです。

些細なことですが、なかなか面白いですね!!