HTTP タスクの再起動

2010年08月02日 00:05

最近告知ネタが多かったので久しぶりに Notes/Domino 関連のお話でもしてみようかと思います。

HTTPタスクを再起動するサーバーコマンドが以下の二つがあるのはご存知でしょうか。

tell http restart
restart task http (6.x以降)


どちらもHTTPタスクを再起動するコマンドですが、この二つは実際には同じではありません。
最近明示的に「restart task httpで再起動してください」と言う話をすることが何度か出てきたのでちょっと今日はこの話をしようと思います。

実際の違いは置いておくとして、このコマンドの二つの構文面での違いはどこにあるでしょうか?

「tell http xxx」コマンドはHTTPタスクのコマンドなので、tell http restart はHTTPタスクが自分で再起動をしようとします。

「restart task <タスク名>」はサーバーコマンド、つまり Serverタスクのコマンドです。
これはHTTPタスクの親プロセスであるServerタスクがHTTPタスクを一度落として上げようとするコマンドです。


こうやって考えるとrestart task の方が十分な再起動が出来るのが感覚的にわかると思うのですが、一番大きな違いは、「tell http restartはJVMの再起動を行わない」事です。
つまり、JVM関連の設定変更などは restart task httpコマンドでないと設定変更が反映されないことがあります。JVMに動作が依存しているXPages関連の設定なども同様です。
逆にHTTPが使用しているNotesのメモリーブロックなどでメモリーリークが懸念される場合などは、tell http restart で十分で、JVMの再起動を行わない分すばやく実行することが出来ます。

蛇足にはなりますが、6.x でrestart taskコマンドが使えるようになったときはずいぶんうれしかったことを覚えています。
 何らかの問題の回避策として、タスクの定期的な再起動などの案内が必要になることがありますが、HTTPタスク以外ではほとんど再起動を行うことが出来なかったため、AMgrや、DIIOPやサードパーティのアドインタスクなど各種タスクの再起動を案内するコマンドが無くて再起動の方法はプログラム文書で2分-5分ほど空けてtell <タスク名> quitとload <タスク名>コマンドを組み合わせるような事を提案したりずいぶん苦肉の策を講じる必要があって苦労していました。今は特に悩むことなくどのプラットフォームでもプログラム文書で実施することが出来るようになってよかったな、と思います。









コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://hnagasim.blog8.fc2.com/tb.php/343-e3fa2a0f
    この記事へのトラックバック


    最新記事