ご連絡。
AN HTTPDチェッカ「httpdc」のページが出来上がりました。
http://www.up.atnifty.com/httpdc/ です。
NameServer1 さん,いとさん
報告遅くなりました。URL の中にユーザ名とパスワードを埋め込んで試してみましたが、やはり、サーバチェックのほうは起動確認失敗に終わりました。ちょっと、無理みたいですね
NameServer1 さん、
>何かあったらAnHTTPDのゲストブックかメールへ書いてください。
というのはちょっとどうかと思いますね。
>しばらくしたら当サイトで掲示板を設置しようと思います。
と書いてありますが、「しばらくしたら」ではなく、早く掲示板を設置してください。
中田さん、こんな感じでよろしいでしょうか?
http://www.up.atnifty.com/httpdc/
kendoさん
AN HTTPD でユーザ認証がかかったページにアクセスしたときに
パスワード入力画面を出さないようにしたいのなら
http://username:password@127.0.0.1/index.html
のように URL の中にユーザ名とパスワードを埋め込めば可能です。
パスワードが見えてしまうのでセキュリティ面からはお勧めではありませんが、
環境的に問題にならないようであれば試してみてください。
NameServer1 さん、
過去ログを見た人が、たとえば、
http://up.atnifty.com/img/200308021057_httpdc022.exe.lzh
にアクセスしても 404エラーで、最新版は何なのかわからなかったりすると途方にくれてしまいます。
それこそダウンロードする人が減ってしまうでしょう。
せめて
http://up.atnifty.com/httpdc.html
とかいうページを作っておいて、そのページに最新版ファイルへのリンクをして、ここではその httpdc.html の URL を書く方がよいと思いますけどね。
>NameServer1さん御苦労さまです。
>果たして読んでDLしてくれる人がいるかどうかが心配で…。(汗
必ず読んでDLします。
頑張って下さい。応援しています。
>解説つきのページを作る
果たして読んでDLしてくれる人がいるかどうかが心配で…。(汗
>kendoさん
それでは無理ですねえ。
http://xxx.xxx.com/index.cgi?id=abcde&pass=12345
な感じでアクセスできるようにすれば可能ですけど。
NameServer1さま
ユーザ認証をドキュメントルートに設定しているので、webサイトにアクセスすると認証画面になります。何かうまくできないでしょうか
NameServer1 さん、
そろそろ NameServer1 さんの自分のところで最新版のダウンロードができるように解説つきのページを作るべきでしょうね。
>ユーザ認証をしようしているからだと思いますが、
>起動確認失敗だけで成功になりません。なにか良い方法はありませんか
ユーザ認証なしで普通にアクセスできる簡単なHTMLファイルを設置して、
httpdc.iniの「確認するページ」を変更してください。
0.23cの配布時はserver.htmを一緒に同梱する予定です。
なお、ハイドさんには申し訳ありませんが、2つのアドレスの確認は少々見遅らさせていただきます。私のスキルが無いのが原因です。すみません。
(前にも言いましたがAnHttpdCのサポート掲示板みたいになっていて中田さんには申し訳ないです。
NameServer1さま
サーバチェックを使用したいのですが、現在、ユーザ認証をしようしているからだと思いますが、起動確認失敗だけで成功になりません。なにか良い方法はありませんか
>htmlがアクセス不能でもcgiがアクセス可能だったり、
>その逆の場合も有るからです。
分かりました。2つのアドレスを確認できるようにしておきます。
Win2000での再起動の確認、よろしくお願いいたします。(_ _)
(タスクトレイに収納しても、あまり変わりませんね…。何のために収納したんだろうかw)
>NameServer1さん御苦労さまです。
htmlがアクセス不能でもcgiがアクセス可能だったり、
その逆の場合も有るからです。
>htmlだけでなくcgiも一緒に監視したいので、2つにして頂けないでしょうか?
httpdc.iniで確認するアドレスを
http://localhost/xxx.cgi(何か文字を返す簡単なCGI)
を設定すれば大丈夫だと思いますが、1つだと問題が起こるのでしょうか?
>NameServer1さん御苦労さまです。
XPでは正常にOSの再起動が出来ました。
2000は後日確認します。(私が主に使うのは2000なんですが…)
あと機能追加の要望なんですが、
今AnHTTPdChecker 0.23bでは「確認するアドレス」が1つのようですが。
htmlだけでなくcgiも一緒に監視したいので、2つにして頂けないでしょうか?
> ハイドさん
申し訳ありません。タスクトレイ収納の際に新たに必要となるファイルを入れていませんでした。
ocx同梱版
http://up.atnifty.com/img/200309022314_httpdc023b_.lzh
不都合、バグ情報、新機能要望の連絡お待ちしております。
>NameServer1さん御苦労さまです。
AnHTTPdChecker 0.23b
起動しようとしたらエラーが出ます。
「コンポーネント'SYSTRAY.ocx'、またはその依存関係のひとつが適切に登録されていません。ファイルが存在しないか、あるいは不正です。」
↑これ何でしょ?
このエラー出るの私だけ?
Checker v0.23b
http://up.atnifty.com/img/200309022104_httpdc023b.lzh
・AnHTTPdを起動させたままWinXP(Admin)の再起動に成功。
・Win再起動制御ために一部の仕様変更。
・タスクトレイにも収納。
0.23は"NTの再起動"以前に、設定によっては絶対に再起動処理をしない
というアホみたいな事になってました。
なお、HTTPサーバを停止させても「成功」と出るのはIEのキャッシュが残っている可能性が"大"です。
当プログラムはIEの機能を一部使用していますので、設定を「ページを表示するごとに確認する」にしてください。
NameServer1さん
お忙しいところすみませんが、
タスクトレイに入れてください(泣
NameServer1さん
参考になるかわかりませんが、このページはどうでしょうか?
http://www.bcap.co.jp/hanafusa/VBHLP/WinXPEnd.htm
#プログラムの作成がんばって下さい。
式神さん
ありがとうございます。
がんばってみます。
Nameserver1さん
追伸のほうに書いたとおり、WinNT系OSでは1つのプログラムがシステムに
対して指示を出す場合には「特権」というものを所有していなければいけ
ませんので、ExitWindows 呼ぶ手前で特権を取得するようにプログラムを
書かないといけません。
ちなみに、これは、システムを再起動する権限のないユーザが、システムを
再起動するような機能をもつプログラムを勝手に実行しても、管理者の意図
しているとおりにユーザの権限を制限するためのものだと思われます
「WinNT シャットダウン 特権」「LookupPrivilegeValue 関数」
あたりがキーワードかと
式神さん、
>http://homepage1.nifty.com/MADIA/vb/API/VBWINEXIT.htm
事前に書いておかなかった私が悪く、申し訳ないのですが、
現在、このソースを利用させてもらっています。
Declare Function ExitWindowsEx Lib "USER32" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Const EXIT_SHUTDOWN = 1
Public Const EXIT_PROCESS = 4
Public Const EXIT_LOGOFF = 0
Public Const EXIT_SAIKIDOU = 2
私のWin98機だと正常に再起動できたのでこの関数が2000/XPに対応していないのだと思われます。
追記です
WinXP/2000/NT4.0では、再起動などOS制御には特権が必要です
その周辺に関する記述は先述のURLには存在しません
この方法に関する議論はこの掲示板にふさわしくないと判断するので
メールで直接やりとりしませんか?
とりあえず、メアドかいとくので‥‥
NameServer1 さんへ
AnHttpd の掲示板という観点からは若干外れるかと思うのですが‥(汗)
http://homepage1.nifty.com/MADIA/vb/API/VBWINEXIT.htm
ハイドさん、実験ありがとうございます。
>再起動ダメ
ダメでしたか。すみません。
知っている方、VB6からWin2000/XPを再起動する方法を教えてください。お願いします。
>どちらか一つしか選べないのは、好ましくないと思います。
>例えば「AnHTTPDの再起動」を実行して二重起動が起こったとき、「OS全体の再起動」が行われるようになれば良いかと思うんですが?
(私のスキルの問題っぽいですが)
二重起動かどうかは判断する事ができませんので、
「Windowsを再起動する連続エラー数」項目を作成して対応しようと思います。
Anhttpdは仕様上、「net stop」を実行してから終了するまでに時間がかかるようなので、再起動時の一時停止時間を5秒から10秒までに引き上げましたがこれでも全然ダメですね(汗
>NameServer1さん
AnHTTPdChecker 0.23
2000/XPでOS再起動の動作が確認出来ませんでした。(私のミスかもしれないので、他の人の意見も聞きたいです。)
あと、連続エラーの数が任意の値になった時、「AnHTTPDの再起動」か「OS全体の再起動」のどちらか一つしか選べないのは、好ましくないと思います。
例えば「AnHTTPDの再起動」を実行して二重起動が起こったとき、「OS全体の再起動」が行われるようになれば良いかと思うんですが?
AnHTTPdChecker 0.23
http://www.up.atnifty.com/img/200308291744httpdc023.zip
iniファイルで簡単設定変更。
簡易ログ出力機能。
Windows再起動オプションを追加。
英語の綴りの間違いを修正。
再起動はWin98で正常動作を確認しました。2000/XPでも動作すると思います。
>ハイドさん
アイデアありがとうございます。
二重起動はどうしようも無いと思っていましたがその方法がありました。
追加しておきます。
>NameServer1さん
AnHTTPDチェックプログラムの事なんですが、
AnHTTPD二重起動の現象が出た場合、まだチェックは続いてて、
エラーの連続回数が増えていくわけですよね?(確かそうだった様な気がする)
その状態を利用して、例えば「再起動する連続エラー回数」を10回に設定していて、
10回を超えて連続エラーが出ていた場合、
OS自体を再起動させる機能をつけることは出来ないでしょうか?
>NameServer1さんのCGI動作中の終了はまた別の話です。
>別の方法を考えてもらう方がよいでしょう。
了解です。気長に待ってます。
別の方法も考えておきます。
NameServer1さんのCGI動作中の終了はまた別の話です。こちらはさらに先になる予定です。
別の方法を考えてもらう方がよいでしょう。 CGIというのは AN HTTPD とは別のCGIのプロセスが動作しています。それをなんとかしないといけないわけです。
AnHTTPdChcker ver0.22
http://up.atnifty.com/img/200308021057_httpdc022.exe.lzh
改良点
・いとさんに指摘されたバグを一応全部直した(はず)。
・デザインの改良。シンプルに。
・ショートカットキーを使えば楽々操作。
・日付と時刻を表示。
・軽量化のためserver.htmの読み込みを廃止(不要になりました。)
・sp.batの復活。
既知の問題点
・AnHTTPDの強制終了時/CGI処理中時
・自動再起動でエラー90、91は発生しないものの「最小化の状態」で起動される。
・読み込み処理が多少おかしい気がする。
いとさん、本当にありがとうございます。
大変助かります。
server.htmにアクセスしないのを、私も確認しました。
server.htmの名前を変えてみても「正常動作確認」と出ます。
このことから、server.htmをチェック出来ていません。
→ 原因は不明でしたがちょっと手を加えて修正。
127.0.0.1 - - [01/Aug/2003:0:0:0 +0900] "GET /server.htm HTTP/1.1" 304 0
127.0.0.1 - - [01/Aug/2003:0:0:0 +0900] "GET /server.cgi HTTP/1.1" 200 61
としっかりログに出ました。(時刻は変更w)
>Administratorで動作確認。
チェックするのに必要なコントロールがAdminでないとダメかもしれません。
>停止ボタンで終了できない
私も確認しました。プログラムから直接"net stop"を実行すると不都合が起こるようです。
→ sp.batでnet stopを呼んで終了させるように戻しました。
>チェック間隔を66秒以上に設定すると実行時エラー380
どうやらチェックするのに必要なコントロールが66秒間隔以上に対応できないようです。
すみませんが、65秒以下にしてやってください。(^ ^;)
→ 66秒以上は設定不可能にしました。
>20秒×20回と設定すると正常に動作しました。
ついに、対策法があったようですね。
→ 標準設定値を20×20に変更しました。
2つのバグを修正しました。
2つの不都合に対策を施しました。
# ####################################################
うーさん
>プロセスID取得して、強制解放なんてダメ?(;´Д`)
WM_CLOSEでも無理だったです。
なんで終わらないんだろ〜…。
# ########################################################
v0.22
様子をみてから明日までに公開します。
NameServer1さん
・C:\Windowsにインストールした Win2000/WinXPでも Administratorでログオンすれば動きました。
私は普段は Administrators権限の別ユーザでログオンしているので動作しなかったということのようです。
OSのインストール先が C以外のドライブでも問題ないかどうかについては未確認です。
・Win2000でアプリケーションエラーのダイアログが出たとき、このダイアログは約5分間出続け、
二重起動の原因になります。ただし全てのアプリケーションエラーがそうなのかは分かりません。
この5分という時間はレジストリで変更可能なのかどうかについても分かりません。
・WinXPで異常終了すると「エラー報告をする/しない」のダイアログが出ます。このダイアログは
いずれかのボタンを押すまで消えませんが、こちらは二重起動の原因にはならないようです。
・Win2000でダイアログが消える前に再起動がかかると「Winsock error 0: サーバソケットを使用できません」と出ます。
その後20回失敗する毎に「2重起動です」のダイアログが出続け、結局二重起動の原因を自分自身が
作ってしまっているということです。
・Win2000でアプリケーションエラーのダイアログ消えた後に再起動がかかるように、例えば 20秒×20回と
設定すると再起動がかかる瞬間には既にダイアログは消えており、二重起動にはならずに再起動もでき
以後正常に動作しました。
・その他に気づいた不具合として、チェック間隔を66秒以上に設定すると「実行時エラー380 プロパティの値が不正です」が出ました。
ひとまず私からはこの関係のコメントはこれで最後にしたいと思います。
NameServer1さん
少し進展がありましたので報告します。
・Win2000のインストール先が C:\WinNT のPCで
・ユーザ administrator でログオンすれば動作しました。
希望としてはこの制限があるならどちらもなくして欲しいです。
AN HTTPDが停止中に AnHTTPDCを起動すると再起動しましたが
一旦正常稼動を確認と出だすとサーバ停止ボタンを押しても再起動せず
チェック停止、チェック開始を押せばカウントアップが始まりました。
これは予想とはちょっと違った動きでした。
前回書いたようにログには server.cgi しかありません。
バイナリエディタで exeの中を server.htm <-> server.cgi と書き替えると
今度は server.htm だけがログに残ります。
何が起きているのかは全く分かりませんが。
anHTTPdの強制終了…。
プロセスID取得して、強制解放なんてダメ?(;´Д`)
最近サーバの起動時、エラーがでる。
EVENTログには「AN HTTP Service サービスは開始時にハングしました」とエラーログが。
むむう。
NameServer1さん
最新版でも変化なしです。
少し状況が分かったので調べて何か変化があればまた報告します。
2行目の「少々驚いています。」
っていうのはミスです。ごめんなさい。
いと さん
少々驚いています。
>GET /server.htm は一度もありません。
>下欄左右の表示枠にはどちらも
><HTML><HEAD></HEAD>
><BODY>ServerCheckあいうえお</BODY></HTML>
この二つ、明らかに矛盾しているんですよ。
なぜserver.htmにアクセスしていないのに取得できているのでしょうか。(汗
もうひとつ矛盾が。
ブラウザで見たとき:<HTML>ServerCheckあいうえお</HTML>
ソフトが取得したもの:<HTML><HEAD></HEAD><BODY>ServerCheckあいうえお</BODY></HTML>
何で違うのでしょうか。本当にserver.htmにアクセスしているのかが気になります。
最新版のhttpdc021.exe、server.htm、server.cgiを同梱しました。
http://up.atnifty.com/img/200307292326_httpdc.lzh
変化がないか確認願います。
今のところ、いとさんだけの症状ですねえ…。
C:\Winnt\にOSが入っていないのも原因かもしれません。
ver0.21、もう5種類くらいありますね。わかりにくくてすみません。
次は0.22でリリース予定です。
NameServer1さん
試したバージョンは 0.21です。OSはWinXP。
トレースログでは GET /server.cgi は10秒毎にあるのですが、
GET /server.htm は一度もありません。下欄左右の表示枠にはどちらも
<HTML><HEAD></HEAD>
<BODY>ServerCheckあいうえお</BODY></HTML>
と出ています。ブラウザで以下にアクセスすると
http://localhost/server.htm
http://localhost/server.cgi
どちらもソースは
<HTML>ServerCheckあいうえお</HTML>
です。これから何か分かりますか?
いと さん
研究お疲れ様です。
>AN HTTPDを停止させれば無応答になるので
>カウントアップしてもいいと思うのですが、
>何か考え違いをしているのでしょうか?
そのとおりです。
・・何でそうなるんでしょうねえ。
なお、次の条件に満たなかった場合は「失敗」と見なされます。
・http://localhost/server.htmを読み込めた
・http://localhost/server.cgiを読み込めた
・上記二つのファイルの読み込んだ内容が同じ
もしかしたら3つ目で引っかかってるのかもしれません。server.htmとserver.cgiにアクセスして、
「<HTML>ServerCheckあいうえお</HTML>」と出力されているのか確認してみてください。
NameServer1さん
以前にも書いたのですが、私のところでは失敗が 1以上に増えたことがありません。
ましてや失敗が20に達して自動で再起動する瞬間を見たことがないのです。
何とか再起動するところを確認したいのですが、何をすればいいのかが分かりません。
動作的にはトレースログを見ているとドキュメントルートに server.cgi があれば
10秒毎に応答は 200が返っているし、server.cgi を rename すれば 404 が返ってきます。
perl.exe の名前をわざと変更すれば 500が返りますが、それでカウントアップする
わけではないですし、AN HTTPDを停止しても、AN HTTPDが落ちても変化なしなので
お手上げ状態です。
AN HTTPDを停止させれば無応答になるのでカウントアップしてもいいと思うのですが、
何か考え違いをしているのでしょうか?
AnHTTPDCが失敗と判断する条件は何なのかを教えてもらえますでしょうか。
ありがとうございます。
主に機能追加とエラー90,91対策のみなので
二重起動問題はいままでと変わらないと思います。
>NameServer1さん
改善版(多分0.21系列最終版)に更新しました。
様子を見ます。
ハイドさん
その通りです。その問題さえなければOKなんですけどねえ。
改善版(多分0.21系列最終版)
http://up.atnifty.com/img/200307291826_httpdc021.exe
「httpdc021.exe」という名前でご使用ください。
主な改良点
・st.batとsp.batは不要、exe本体だけでOK。
・デザインの改良
・「手動確認」の追加
・チェック開始/停止のボタンを統一
・エラー90,91発生時の対策。「0で除算エラー」のバグつぶし。
・稼動確認失敗の場合にエラー原因(CGIが読み込めない等)を表示。
多重起動バグの対策を少しだけしてみましたが症状が少し軽減したくらいです。(^ ^;)
皆さんにお願い。
「AnHTTPDを強制終了する方法」を編み出してみてください・・。お願いします。
(疲れてきた…開発を2〜3日休まさせてもらいますw)
>NameServer1さん
今日家に帰ってみると、
二重起動の警告が沢山出ていて、
サーバもアクセス不能になっていました。
改良の余地有りですね。
(↑生意気な事言ってすいません。)
いと さん
再起動は基本的に
net stop "AN HTTP Service"
net start "AN HTTP Service"
で行っています。
強制終了時にそのバグが多発するのは承知しております。
う〜む・・・。
NameServer1さん
私のところでは「サーバ停止」ボタンでAN HTTPDを止めても、
AN HTTPDが異常終了してもどうやっても自動で再起動はしません。
20回連続失敗すれば再起動という処理なのでしょうが、
どうすれば意図的に再起動させることができるのかを教えてください。
うー。さん、ありがとうございました。
basファイルを見させてもらいましたが
Shell ("net stop ""AN HTTP Service""")
の案は採用させていただきます。次回からst.batおよびsp.batは不要になる予定。
本題の終了案ですが、前にその仕組みで製作したことがあったんですが(v0.12くらいかな)
重いCGIだとそのうちフリーズするバグがありまして、v0.13から不採用になりました。
まあ、プログラムの様子を見ながら検討させていただきます。
>NameServer1さん
1日経ちました。
再起動が3回行われていた様ですが、
今の所二重起動の現象は起きていません。
常駐黄色マークの「AN HTTP」が二つ表示されていて、
マウスをマークの上に持って行くと片方が消えるっていう現象が有りましたけど、
サーバとしては問題無く動いていたようです。
BASIC認証と言うウィンドウ表示されてませんか?
そこにパスワードが書かれているのですが。
とりあえず、今のユーザ名とパスワードは uploader / pepsiwoman です。
うー さん
パスワードかかって見れないです。
いと さん
新たな情報ありがとうございます。
shdocvw.ocaなんていうファイルが必要だったんですか。
AnHTTPDC0.21.exe本体と同じフォルダに入れれば動くかもしれません。
\Windowsインストールフォルダ\System(32)\shdocvw.oca
または http://up.atnifty.com/img/200307280833_shdocvw.oca
からコピーしてください。
どうでしょうか?私はC:\winnt\なので確認不能ですみません。
NameServer1さん
net stop→net startでのanHTTPd二重起動の件ですが、
http://uploader.spcar.info/の『anHTTPd2重起動対策bas』を見て下さい。
用はnet stopを実行後、net stopが終了するまで次の処理を待ち、ついでに
net startを実行する際も終了するまで待ってます。
ウチはこのコードをtimerイベントで処理してます。CGIでiniファイルが更新されたら
その結果を反映して、anHTTPdを再起動させる処理用です。
CGIが終了するまでnet stopの処理は続くので、たぶん問題ないと思いますが。
NameServer1さん
私のところではカウントアップしないままなので確認できない状況です。
NameServer1さんのところでは当然カウントアップしてるんですよね?
配布された exeのバイナリをテキストエディタで無理矢理覗いてみると
C:\WINNT\System32\shdocvw.oca
C:\Program Files\Microsoft Visual Studio\VB98\VB6.OLB
などの文字列があるのですが、OSは C:\WINNT にインストールしてあること
という条件はないですよね?
ハイド さん、
今回の鍵である"二重起動"はどうでしょうかね。大丈夫でしょうか。
PerlをPerlis.dllにするとチェックが多少安定するようですが。
安心していて「朝起きたら二重起動画面が何十個!?」とならないように私からも祈ります。w
これがダメなら他の案を考えなければならないですし…。
ちなみに、下のほうにはテキストボックスが二つありますが
左がserver.htmの読み込み、右がserver.cgiの読み込みです。
-------------------------------------------------
それと、 いと さん。
3つの不都合は直ったでしょうか?確認をしていただけませんか?
>NameServer1さん
設定出来ました。
CGIチェックいい感じですね。
しばらく放置しといて様子を見る事にします。
変わった事が有ったらカキコします。
anHTTPdチェックプログラムって、みんなが待ち望んでいたソフトではないですか?
NameServer1さん感謝します。
これで毎晩安心して眠れます。
不具合がない事を祈ってます。
httpd.exe を起動し、
オプション(一般) → サービス で
「サービス」をチェックし、OKとすれば、出来ると思います。
CGIチェックがなかなかいい感じ。
>NameServer1さん
AnHTTPDをサービスに登録のやり方がわかりません。
初歩的な質問ですいません。
自分でも色々いじって見たんですが、分からなかったです。
st.bat等をいじるのでしょうか?
ハイド さんへ。
その案を採用してみましたが、どうでしょう?
http://up.atnifty.com/img/200307271359_sc.lzh
(AnHTTPDをサービスに登録しておいてください。httpd.exeと違うフォルダにおいても結構です。)
>NameServer1さん
プログラムの事は良く分かりませんが、
「net stop」を大量に連呼すれば、二重起動防止になったりしませんか?
プログラムの事は全く分かっていない私なので無視してOKです。
ハイドさん
その意見も考えておきますが、まず例の二重起動対策をしておきますね。
最近自分のサーバが安定してきたのでテストできなくなってきた(汗
二重起動防止案を募集中です。ちょっとした考えを宜しくお願いします。
>NameServer1さん
anHTTPdチェックプログラム最高です!
私の場合、AN HTTP 1.42hで、
よく(1日に1度位)、htmlは正常に動作しているんですが、
CGIがアクセス出来ない状態になる事があります。
そこで、anHTTPdチェックプログラムのチェックする場所を、
htmlでは無く、CGIに変更できませんか?
自分で指定できるようになったら、尚良いです。
真に勝手な事ばかり言ってますが、
どうぞヨロシク御願い致します。
うー。さんへ
技術的には可能です。というか、初めはそのやり方でした。
しかし、net stopのときに、CGI処理中などだと正常に終了できなく、
net startで例の二重起動ダイアログが出てきます。
サービス制に戻そうかとも思っていますが、まず一番に
「CGI処理中等だとAnHTTPDを終了できない」という問題の対策を立ててからにします。
うーむ。その問題さえクリアすればほぼ完成なんですがねえ…。(汗
それか………………………、
VB6.0で書いたソースを差し上げますので、どなたか開発に挑戦してみますか?(笑)
>NameServer1さん
例の監視プログラム。サービス登録してあるanHTTPdを再起動させることはできませんか?
net stop "AN HTTP Service" 実行後 net start "AN HTTP Service" で再起動できるので
サービス登録されていないanHTTPdとサービス登録されているanHTTPdを選択できるように
できないでしょうか?
本当にごめんなさい。
「再起動時に重大なバグがあります。」
再起動問題についてはしばらく私一人でがんばって研究します。
では。
>NameServer1さん
おおっ新版ですね! 早速試してみます!!
うーさん、ありがとうございます。
ProcessHandleを取得して強制終了させる処理を追加した試作品出来ました。
httpd.exe強制終了時の二重起動等、いろいろ試してみてください。
それとかなり不安定かもしれません。
なお、チェック間隔を設定可能にしました。
http://up.atnifty.com/img/200307231723_serv.exe
今回は、httpd.exe本体と同じフォルダに入れてください。
起動処理をserv.exeでするため、batファイルは不要です。
チェックのためテキストボックスを二つ追加しました。
下のほうのテキストボックスにはserver.htmのソースが入っていれば正常動作確認です。
>NameServer1さん
anHTTPdチェックプログラム(・∀・)イイ!!
ウチの鯖にも常駐させようっと。
熟成頑張ってください!! 応援してます!!
NameServer1 さん
http://localhost/server.htm にはアクセス可能です。
server.htm も「ServerCheck あ い う え お 」の方に置き換えています。
設定が 20(恐らく 2〜20なら全て)の場合二つ目の ・ に書いたように
「失敗。(1回目)」となった以後は「正常稼動確認」になってカウントアップしません。
「失敗。(1回目)」と1回はカウントするようなので 1 に設定してみたら
この場合だけ再起動したということです。
VB6が古いのかと思い VB6SP5 Runtimeをインストールしましたが変化なしです。
NameServer1 さんが動作確認された方法を教えてもらえればそれを試してみますが。
ここでのやりとりがあまり続くようなら私はメールに切り換えても構いません。
・AN HTTPDが起動していない状態で AnHTTPDaemonCを起動すると
直後のチェックでは「失敗。(1回目)」と表示されるのですが、
以後は「正常動作確認」となってしまい失敗数も 1 のままカウントアップしません。
無応答が続いているはずですが待っていても再起動しません。
・AN HTTPD と AnHTTPDaemonCが起動している状況で AN HTTPDを終了しても
「正常動作確認」が続き再起動しません。
この二つについては、AnHTTPD起動時/非起動時に「http://localhost/server.htm」
にアクセス出来るかを確認してください。
なお、Ver0.2の新しいhtmファイルに更新しないとダメかもしれません。
・AN HTTPDが起動していない状態で AnHTTPDaemonCを起動し、
「再起動する連続エラー数」を 1 に変更すると 1回目のチェックで再起動します。
エラー数を 1 にした場合のみ正常に動作するようです。
20だと「失敗(20回目)」で再起動する
という意味ですが、誤動作してしまうのでしょうか?
>後、チェックの時間間隔を10秒固定ではなく設定可能にしてはどうでしょうか。
了解しました。
二重起動対策としては、ProcessHandleを取得し、AnHTTPDが終了したか確認するまでまで起動を待つという方法をプログラムに装着しました。現在試運転中なのでお待ちください。
※0.2では、二重起動が起こる事は起りますが、「10*連続エラー数の設定(規定値は20)」ごとになっています。
NameServer1さん
動作テストの結果を報告します。
・「サーバ起動」「再起動」「サーバ停止」ボタンは正常に働きます。
・AN HTTPDが起動していない状態で AnHTTPDaemonCを起動すると
直後のチェックでは「失敗。(1回目)」と表示されるのですが、
以後は「正常動作確認」となってしまい失敗数も 1 のままカウントアップしません。
無応答が続いているはずですが待っていても再起動しません。
・AN HTTPDが起動していない状態で AnHTTPDaemonCを起動し、
「再起動する連続エラー数」を 1 に変更すると 1回目のチェックで再起動します。
エラー数を 1 にした場合のみ正常に動作するようです。
・AN HTTPD と AnHTTPDaemonCが起動している状況で AN HTTPDを終了しても
「正常動作確認」が続き再起動しません。
ということで「2重起動」が連続するかどうかの確認以前に問題があります。
恐らく単純ミスかと思われますが。
後、チェックの時間間隔を10秒固定ではなく設定可能にしてはどうでしょうか。
AnHttpDaemon専用サーバチェッカ
サービスに登録されたアプリケーションを強制終了させるやり方は不明なので
普通に強制終了させる方式にしました。サービスをインストールせずにご利用ください。
http://up.atnifty.com/img/200307202217_AnHTTPDC.lzh
ダイアログ大量発生バグは改善されたでしょうか?
もちろんこちらでも研究しますが、報告してくれるとありがたいです。
(これでもダメな場合、もっと強力な強制終了技もありますので、そちらも検討中。)
それと…、インストーラを廃止しました。
前バージョンはアンインストールして結構です。
>NameServer1さん
>自動再起動ソフト(ServerCheck)を Win2000で試してみました。
ありがとうございます。
>そのまま放置しているとメモリ使用量は増え続けます。
>二重起動になるということは落ちたようで実は完全には(?)
>落ちていないのかもしれません。
「CGI処理中」等、他の処理をし続けて応答が無く再起動する場合、
再起動が正常にできず「AN HTTPD の2重起動です。 終了していいですか?」
が無限に出てくるバグが現在判明しています。
緊急対策中なのでもう少しお待ちを(^ ^;)
net stop "AN HTTP Service"
net start "AN HTTP Service"
で再起動をしていますが、start前にhttpd.exeの強制終了処理を入れたほうがいいですかね?
NameServer1さん
自動再起動ソフト(ServerCheck)を Win2000で試してみました。
サービスで手動で「停止」させた場合には自動的に再起動するのですが、
以下のスレッドのように PDFへのアクセスでAN HTTPDが落ちるケースでは
問題がありそうです。
http://homepage1.nifty.com/yito/namazu/gbook/20030705.1805.html
このケースでは以下のような現象が発生します。
1. AN HTTPDが落ちると、まず以下のダイアログ(A)がでます。
(このダイアログはかなり時間が経った後で自動的に閉じます)
「アプリケーションエラー
エラーが発生したため、<プロセスは既にあります> を終了します。
プログラムをもう一度開始する必要があります。
エラー ログを作成しています。」
このとき、タスクマネージャのプロセスから httpd.exe は消えています。
2. 落ちた後、ServerCheckが働いて以下のダイアログ(B)が出ます。
「Winsock error 10038: サーバソケットを使用できません。
他の HTTPサーバが動いていないか確認してください。
あるいはポート番号を変えて下さい。」
3. 続いて以下のダイアログ(C)が5秒毎にとめどなく出続けます。
「AN HTTPD の2重起動です。 終了していいですか?」
そのまま放置しているとメモリ使用量は増え続けます。
二重起動になるということは落ちたようで実は完全には(?)
落ちていないのかもしれません。
ダイアログ(A)〜(C)を全部閉じるとAN HTTPDが自動再起動します。
どんな落ち方をすることがあるのかが分かっていないと
(前もって分からないのが普通でしょうが)、返ってまずい場合もありそうで
多少心配ではあります。
AN HTTP Daemonが落ちても自動で再起動するソフト作りました。
よく落ちてしまう人は試しにに使ってみてください。
http://up.atnifty.com/img/200307131318_ServerCheck.lzh
(再起動するにはAN HTTP Daemonをサービスに登録している必要があります。)
http://homepage1.nifty.com/yito/namazu/gbook/20020922.0808.html
がプログラム製作発想源です。 (^ ^;)