AN HTTPD ゲストブック/コメント集(2003年7月5日18:05)


中田昭雄 nakata@st.rim.or.jp 2003/08/03 10:17

いとさん、
ログの件は、今回の修正で問題がないことが確認できたら大量の表示はしないように変更します。

表示が遅い件は、バイトレンジ非対応のサーバの方が早いということになってしまっているのでしょうね。
確かにAcrobatの「最適化」が最適になっているかどうか疑問はあります。ネットワークが遅い時代には、大きいファイルの一括ダウンロードよりも必要なところだけをバイトレンジで取り込む方がよかったのでしょうが、今は細かいレンジをたくさん取り込むオーバーヘッドの方が大きくなってしまっているのかもしれません。

もっとも、Acrobatの最適化の問題なのか、ブラウザ(IE)の問題なのかはちょっとわかりません。
ブラウザに表示するのではなく Acrobat Reader での表示では「最適化」していても早く表示されるのですから。

当面 PDF については「PDFをブラウザに表示しない」のが「最適」というのに私も賛成です。


いと gfh05223@nifty.com 2003/08/03 07:15

中田さん
PDFアクセスで異常終了の件、対応ありがとうございました。
すぐに落ちていたのが直り、スクロールもスムーズになりました。
これで様子を見てみます。

ログに関してですが、例えば例のファイルに一回アクセスすると、
errors.logに Multiple Ranges が1000行以上も出力されます。
そのうちで構いませんが考えていただければと思います。

6ページと24ページの表示が遅いのは別の問題のようですね。
単に前ページ、次ページでも遅いです。
試しにやってみた IISでも遅く、BJD や ftp:// でなら単純に
Acrobatで開いたときと同じ普通の速さで表示されました。
Acrobatの最適化に問題ありということでしょうか?
少なくともサーバ側の問題ではないという感じです。

せっかくの最適化なのですが、一般ユーザの立場からは
「PDFをブラウザに表示」しないのが最適解のように思えますね。


あせろら まだない。 2003/07/23 18:31

こんにちわ。

>原因はまだつかめていませんが、落としながら確認中です。
>もう少しお待ち下さい。
よろしくお願いします。

WindowsMEを使える機会を得たので試行してみました。ちょっと気になったので書いときます。

試行環境はWindows98の時と同じです。
Windows98もそうだったのですが、httpd.logを見ると“HttpVersion1.0、1.1"“共に”2,3行目まで200を返し後は“共に"“206”を返してきます。が、MEでは途中503を出します。503を出した後、再び206を出して、それを何度か繰り返したのち、Acrobatがフリーズします。
フリーズ後も、Anhttpdは正常になるみたいで、新しいウィンドウを出してドキュメントルート下のhtmlファイルなどはチャンと表示されます。ちなみに、フリーズした状態で違うウィンドウで再びpdfファイルをリクエストしてもフリーズします。MEではフリーズの方が多くWindows98のエラーはなかなか確認できませんでした。


中田昭雄 nakata@st.rim.or.jp 2003/07/19 05:56

いとさん、あせろらさん、
PDFで落ちる話は了解です。
原因はまだつかめていませんが、落としながら確認中です。
もう少しお待ち下さい。


いと gfh05223@nifty.com 2003/07/17 06:32

kendoさん

拡張子 pdfのファイルタイプを application/octet-stream にしたときにダウンロードになるのは
ブラウザが Netscapeのときで、IEでは Content-Type に書かれた内容を無視しレスポンスの中身の
頭の部分を調べて表示するアプリを決めるようなので、ファイルタイプの書き替えは全く無意味でした。
普段 Netscapeしか使っていないのでよく調べずにいい加減なことを書いてしまいました。すみません。

これは古くからある悩ましい問題のようですがどうも解決策はなさそうな感じです。
IE content-typeを無視


kendo kendouma@hotmail.com 2003/07/15 15:40

いとさん

pdfファイルをダウンロードして表示するように設定しようとしています。しかし、拡張子 pdfのファイルタイプを application/octet-streamにしてもacrobatreaderが立ち上がって直接表示されてしまいます。設定の方法をお教え願えないでしょうか


あせろら まだない。 2003/07/14 15:29

こんにちわ。

>オプション設定を変更したりするとそのエラーになると思いますが、そういう話ではありませんか?
いえ、そうではありません。ちなみに、オプション設定を変更してみましたがAnhttpdは普通に再起動し、Acrobatがフリーズしました。

いとさんの書き込みから、同じ現象が確認されているみたいですね。
詳細は違いますが、「1つ目と2つ目が同じで、3つ目がKERNEL32です。」は同じでした。
ほとんどが、3つですが、5つの時もありました。その時の詳細は3つだろうと思い見ませんでした。
それから、以前、エラー時にコネクションが2つと書いたのですが、その後、1つの時もありました。


いと gfh05223@nifty.com 2003/07/13 10:38

中田さん、一歩前進してよかったです。
私のところでは (1)でも (2)のケースでも落ちています。

あと、ログを見ていて気がついたのですが、
Multiple Ranges が続いている途中に AN HTTPD 1.42h Ready. の
1行が入っている個所がいくつかありました。その前に closed はありません。
その後も数秒間、数十行 Multiple Ranges が出て止まっています。

PDFにアクセス中に何かの拍子で再起動がかかったかのようです。
ただ、落ちたときのほとんどは Ready は出ていないので、
どういう場合に出るのかは全く分かりません。


中田昭雄 nakata@st.rim.or.jp 2003/07/13 08:05

いとさん、
HTTP/1.1 の場合は再現できました。
対策をどうすればいいかはまだわかっていません。

HTTP/1.0 にした場合は再現できていませんが、いとさんの方では(1)(2)共に同じでしょうか?


いと gfh05223@nifty.com 2003/07/12 21:12

中田さん
スクロールは特に技があるわけではなくてアクセスと同時にスクロールバーの
下矢印の内側をマウスの左ボタンでひたすら押し続ける。最終ページまでくると
今度は上矢印のすぐ下を押し続けるを繰り返しているだけです。
それで落ちずに数回上下したときはリロードするという感じです。

オプションはデフォルトからドキュメントルートを変えただけでも落ちますので
AN HTTPDの設定が関係しているとは思えないのですが。


中田昭雄 nakata@st.rim.or.jp 2003/07/12 19:36

いとさん、
私がうまく再現できないのは、トレースその他のログを切り替えるためオプション設定変更ごとに AN HTTPD を再起動しているからかもしれません。あるいはスクロールのさせ方が不十分なのかもしれません。
もう少しいろいろ調べてみます。


いと gfh05223@nifty.com 2003/07/12 17:20

中田さん
私とあせろらさんのところは全く同じ現象が起きているのだと思います。

Win98でページ違反が3回出るというのは私の場合は以下の内容です。
1つ目と2つ目(省略)は同じものです。3つ目がKERNEL32です。
オプション設定変更時ではありません。

------------------------------------------------ 
HTTPD のページ違反です。
モジュール : HTTPD.EXE、アドレス : 0177:004d0a2d
Registers:
EAX=0000002c CS=0177 EIP=004d0a2d EFLGS=00010202
EBX=020bacb0 SS=017f ESP=07ef666c EBP=07ef6670
ECX=00000001 DS=017f ESI=00000002 FS=4f3f
EDX=00000001 ES=017f EDI=0019b6ca GS=37b6
Bytes at CS:EIP:
8a 1a 3a c3 74 2c 84 db 74 24 8a 5a 01 3a c3 74
Stack dump:
020bacb0 07ef6f14 004917f2 00000001 0000002c 00000002 07efd4a9 020bacb0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

HTTPD の c0000026H 例外です。
モジュール : KERNEL32.DLL、アドレス : 0177:bffc0240
Registers:
EAX=00000000 CS=0177 EIP=bffc0240 EFLGS=00000202
EBX=00000000 SS=017f ESP=07ef6470 EBP=07ef6480
ECX=07ef64bc DS=017f ESI=07ef63ac FS=4f3f
EDX=07ef6574 ES=017f EDI=81f379e0 GS=0000
Bytes at CS:EIP:
5d 5f 5e 5b 8b e5 5d c3 8b 4c 24 04 f7 41 04 06
Stack dump:
07ef6480 bff79050 00000000 07efffbc 07ef64a4 bffc037f 07efffbc 07ef64a4 07ef6574 81f379e0 07efffbc 07ef6574 07ef6590 07ef64c8 bff768c9 07ef6574
------------------------------------------------
オプション設定を変更した (1),(2)のケースでは、途中で止まることなくスムーズに
スクロールするようになりますが連続上下スクロール状態、あるいはリロードして
スクロールを続けているとそのうちに落ちます(Win98では上記のページ違反、
Win2000ではアプリケーションエラー)。

また、落ちることとの関係は不明ですが、中田さんに ftpしてもらったPDFファイルの
6/24, 24/24ページなどの表示が変です。<A HREF="xxx.pdf#page=6"> のように
6ページ、24ページなどにリンクを張り、リモートアクセスするとNetscape4.78 では
随分時間が経ってから以下の Acrobat/Reader のエラーダイアログが出ます。
「ページの処理中にエラーが発生しました。ファイルの入出力エラーが発生しました。
接続中にタイムアウトになりました。」
IE6では多少時間はかかるのですが、じっと待っていれば表示されました。

ローカルアクセスでは時間はかかりますがタイムアウトせずに表示されました。
Acrobatで直なら問題なく表示されます。
サーバがIIS5.0でも試してみたところ、Netscape、IEともに時間はかかるが表示されました。

私のテストマシンが遅いということが関係しているかもしれませんが、ログ上はアクセスが
続いているわけではないのでなぜタイムアウトなのか分かりません。操作としては単にリンクを
クリックして待っているだけなので、再現性があるなら中田さんのところでも再現しそうな
気がしますが。


中田昭雄 nakata@st.rim.or.jp 2003/07/11 21:55

あせろらさん、
AN HTTPD とコネクションが続いている時にオプション設定を変更したりするとそのエラーになると思いますが、そういう話ではありませんか?


あせろら まだない。 2003/07/11 21:32

こんばんは。お返事ありがとうございます。

>というのはどういうエラーでしょうか?
すみません。説明不足でした。

HTTPD のページ違反です。
モジュール : HTTPD.EXE、アドレス :
Registers:
Bytes at CS:EIP:
Stack dump:

といった具合のエラーがでて終了してしまいます。
おすすめの設定を色々変えてもでました。
一回の終了につき、3つのHTTPDのページ違反がでます。
*詳細を書き込むのはちょっとごめんさない。

>というのはどういう意味でしょうか?
>ANHTTPDへのコネクションが同時に2つある、という意味でしょうか?

はい。あまり詳しくないのですが、エラーウィンドウが出ているときnetstatコマンドで確認しましたし、2つでした。
ページ毎リクエストの設定の時の連打 or so でのエラーですが、1ページにつき1コネクションなのかどうかはわかりません。


中田昭雄 nakata@st.rim.or.jp 2003/07/11 20:37

あせろらさん、
>引きずりませんでした。しかし、Anhttpdのエラーがでます。
というのはどういうエラーでしょうか?
また、
>コネクションは常に2重のときでした
というのはどういう意味でしょうか?
AN HTTPD へのコネクションが同時に2つある、という意味ですか?


あせろら まだない。 2003/07/11 19:54

こんにちは。

すみません。いきなりですが、訂正です。
(あまり書き込みはしないので、へたくそで申し訳ないです。)

>4、××××で、ローカルではなく外(他のサイト)へアクセス。 一括DL
ページ毎になったり、一括DLになったりでした。サーバ側の対応状態によりけりみたいです。

>3にする事で回避できました。Acrobatの問題のように見えます、、、。
この発言はAcrobat側に否があるみたいに解釈される(そんなつもりはなかったのですが、、、)みたいです。Acrobatさん、ごめんなさい。えらそうな事言って。(見てないと思うけど)
3にする事で一括DLになりました。Acrobatの仕様のようです、、、。と訂正します。

中田さん、アドバイスありがとうございます。
改めておすすめの設定で、pdfファイルも5Mと大きなファイルをGETし試してみました。

(1)、(2)ともに引きずりませんでした。しかし、Anhttpdのエラーがでます。
連打した時や、Acrobatの手のポインタで動かしている時と、さまざまです。あ、コネクションは常に2重のときでした。


中田昭雄 nakata@st.rim.or.jp 2003/07/10 20:46

いとさん、あせろらさん、
コネクションをひきずる話だとすると持続接続(Keep-Alive)の実装法の問題かもしれませんね。

できれば Acrobat の「最適化を許可」した状態で、AN HTTPD のオプションで、
(1)持続接続タイムアウトを 0 秒にする
または
(2)HTTPバージョンを 1.0 にする
というのを試してみていただけませんか?


いと gfh05223@nifty.com 2003/07/10 01:28

あせろら さんが言われるように Acrobat/Acrobat Readerの
「Web表示用に最適化を許可」のチェックは外して使う方がよさそうですね。

チェック有では連続スクロール状態で 3ページほど読んだところで
随分待たされていたのがスムーズなスクロールになるし、
途中で何度も AN HTTPDのアイコンにコネクションマークが走っていたのも
出なくなりました。

さらに何回か試しただけですが、AN HTTPDが落ちることもありませんでした。
(落ちないと言い切ることはできませんが、すぐに落ちていた状況は解消されました)


あせろら なくなった 2003/07/09 21:37

pdfファイルについて、おじゃまします。

環境:Win98、Anhttpd 1.42h、IE、Adobe Acrobat505、〔http://localhost/a.pdf〕へ
使用pdfファイル:Acrobat505のヘルプファイル 953kbのやつ(ファイル名:a.pdf)

1、Acrobatの環境設定〔Webプラウザオプション〕を全てチェック ××××の場合
ページ毎のアクセスになりますが、コネクションが引きずります。

2、□×××の場合
一括DLで、別表示。

3、××□×の場合
一括DL

4、××××で、ローカルではなく外(他のサイト)へアクセス。
一括DL

*コネクションを引きずるという表現は正しくないかもしれません。
 netstatコマンドで state: ESTABLISHED が長い(1ページに付き20秒ほど)って事です。

1の時、常に3ページ目が1ページ目のコネクションが終了しないとアクセスしないのです。
3にする事で回避できました。Acrobatの問題のように見えます、、、。
Anhttpd側で、ページ毎のアクセスを選択できないでしょうか?


kendo kendouma@hotmail.com 2003/07/08 12:43

いとさん
現在、社内のいろいろなデータ(紙ベース)をスキャナして、電子データ化し、PDFに変換してデータベース化しようとしています。したがって、PDFファイルの90%以上がTIFFからPDFに変換したものです。1ページ(A4サイズ)のデータで約40KB、100ページあるとすぐに4MBぐらいのサイズになります。社内のLAN環境では、うまく、表示できていたのですが、インターネットに公開(アクセス制限を利用)して、自宅から見ようとするとWebサーバが落ちました。
あと、フレームでなく、別に表示しても結果は、同じように落ちます。


いと gfh05223@nifty.com 2003/07/08 01:08

kendoさん
PDFをフレームに表示すると落ちるという報告は以前にもありました。
http://homepage1.nifty.com/yito/namazu/gbook/20020419.1302.html

私の場合は、リンク元はフレーム内ですが、PDFファイルを別ウィンドウに表示します。
また、ローカルに http://127.0.0.1/xxx.pdf と直打ちして落ちるので、
フレームは直接関係はないという気がします。
kendo さんはフレームにしなければ大丈夫なんでしょうか?

ファイルサイズについては確かに大きいものが問題なようにも思えますが、
私が落ちることを確認した2つのファイルは 1.5MB と 920KB です。
サイズよりはファイルの中身の問題のような気がしています。

アクセス制御については対象ファイルから拡張子 pdf を外したり、
最大数を20とか変えてみましたが変化はないように感じます。


中田昭雄 nakata@st.rim.or.jp 2003/07/07 21:29

kendo さん、
いとさんのとは微妙に話が違うような気がしますが、同じ原因なのかもしれませんね。
当面、いとさんがやっているように PDF はダウンロードにしてしのいでいてください。


kendo kendouma@hotmail.com 2003/07/07 12:29

中田さん、いとさん、はじめまして。
いとさんと、同じようにPDFファイルをフレームで表示しようとすると、WEBサーバがエラーを起こします。ログファイルの表示も同様です。PDFファイルは、小さなファイルは、問題ないようなのですが、2Mを超えるようなファイルでは、落ちるようです。また、社内LAN上では、IEがフリーズすることがあっても、WEBサーバが落ちることはありません。しかし、インターネット上では、(ADSL8M)2Mを超えるような大きなPDFファイルを表示すると2,3ページ表示後、フリーズしました。また、アクセス制御で、同一ファイルへの同時アクセス数を制限するで仮に最大数を3にするとPDFファイルの場合は、4ぺ−ジ目で制限がかかるようです。


中田昭雄 nakata@st.rim.or.jp 2003/07/06 07:12

いとさん、
再現させて調べてみます。


いと gfh05223@nifty.com 2003/07/05 18:05

中田さん
PDFファイルにアクセスすると AN HTTPDが落ちるという現象が当方でも発生しました。
社内のサーバなのですが、連続して落ちるので調べてみると最近よそから持って来た
PDFファイルのうちのいくつかが原因らしいことが分かりました。

その内の一つのファイルをローカルに 4台のPCで試してみたのですが、これまでに
合計では何十回も落とした計算になります。かなり再現性があります。

以下に分かったことを書いてみます。

・errors.logに Multiple Ranges … が続き、落ちる前のログがちょっと変。
 正常なときは以下のような表示ですが、
Info: Multiple Ranges: 1541561-1541562, start=1541561, end=1541562, totallength=1629283

 以下のように範囲がないことがときどきあったり
Info: Multiple Ranges: 1, start=1, end=1629282, totallength=1629283
Info: Multiple Ranges: 116, start=116, end=1629282, totallength=1629283

 以下のように文字化けすることもあります。
Info: Multiple Ranges: ー, start=0, end=1629282, totallength=1629283
Info: Multiple Ranges: 1D, start=1, end=1629282, totallength=1629283

 ログがおかしかったら必ず落ちるというわけでもないし、落ちても正常なログの後
だったりするので因果関係はないのかもしれませんがちょっと気になりました。
(落ちたからおかしい可能性もあるでしょうが)

・ローカルホスト、リモートホストに関わらず発生。
・ドキュメントルートにファイルを置き、http://127.0.0.1/xx.pdf と直打ちで発生。
・OSはWin2000Pro、WinXP Pro、Win98いずれでも発生。
・ブラウザはNC4.78とIE6どちらでも発生。どちらかというとNCの方が起き易いかも。
・AN HTTPDのレジストリをクリアしても変わらず。
・そのPDFファイルは特定のページに埋め込まれた画像の表示に随分時間がかかるが、
 Acrobat自体で表示させるとそんなに時間はかからない。
・アクセス時はAcrobat/Acrobat ReaderのCPU使用率かなり大。
・遅いマシンほど落ち易いようにも思えるがが、サーバマシンはPentium4、2.4GHz、
 512MBなので多分関係ないでしょう。

確実に落とせる方法が分かったわけではないのですが、PDFファイルにアクセスと同時に
ひたすら上下にスクロールを何度も繰り返し、それでも落ちなければリロードする
といったように結構乱暴なアクセスをすれば50%位の確率で落ちています。

メールで送れなくはないサイズですが、そのPDFファイルとWin98、Win2000で実行したときの
ログ/Watsonログをftpでとれるようにしました。後でパスワードをメールします。> 中田さん

現在サーバは自衛策として拡張子 pdfのファイルタイプを application/octet-streamにして
PDFファイルだけはダウンロードになるようにしてしのいでいます。

解決の手掛かりになることを願っています。