AN HTTPD ゲストブック/コメント集(1999年10月29日06:10)


湯口 JY6S-YGC@asahi-net.or.jp 1999/10/31 23:38

中田さんperlis.dllの認識についてコメントありがとうございました。
お蔭様で、build 110とbuild521のperlis.dllを使い分けできるようになりました。


中田昭雄 nakata@st.rim.or.jp 1999/10/30 17:54

湯口さん、
現在の PerlIS.dll の決め方は、
(1)HKEY_LOCAL_MACHINE\SOFTWARE\ActiveState\ActivePerl があれば、HKEY_LOCAL_MACHINE\SOFTWARE\Perl の値を PERLPATH として、"PERLPATH\bin\PerlIS.dll"
(2)ActivePerlがなくてHKEY_LOCAL_MACHINE\SOFTWARE\ActiveWare\Perl5 があれば、HKEY_LOCAL_MACHINE\SOFTWARE\ActiveWare\Perl5\BIN の値を PERLBINPATH として "PERLBINPATH\PerlIS.dll"
(3)いずれもなければ、単に "PerlIS.dll" としてLoadLibraryの検索順で検索
となっています。
ActivePerlの複数バージョンには対応していません。
PerlIS.dllのフルパスを指定できる方がいいと思っていますが。

ISAPIについては、Microsoft の MSDN Library の中のISAPI Reference か、関連ドキュメントを見てみてください。
昔はもう少しわかりやすいドキュメント構成だったように思うのですが、今検索したら、これくらいしか。。
PerlIS.dll もソースは出されていませんし。


湯口 JY6S-YGC@asahi-net.or.jp 1999/10/30 03:55

perlis.dllの速度について・・・(いわゆる自己レスです。)

テスト内容:
約2MBの掲示板ログを配列に読み込み、index関数にて検索。(Pentium133,RAM133)
以下のような結果になりました。

「110-i86.zip」に含まれるperlis.dll:5.2sec
「APi521e.exe」に含まれるperlis.dll:1.8sec

以前申した通り、APi521e.exeに含まれるperlis.dllは、method=POSTによる送信を受け付けないので、
いずれもaction= ***.cgiで送っています。

一応、検索そのものは両方共問題なく動作しました。
が、リモートホストのログが初回アクセスのものに固定され、
以降は別のユーザでも全て最初のユーザのIPで検索したようなログが残ります。
(他の多くの環境変数も上手く使えないようでした。)

確かにアクティブperlに含まれるperlis.dllは速いようなのですが、
問題が多すぎます:-O


それと、ここからは質問です。
perl.exeの在処は、Autoexec.batにて設定したディレクトリを探している(又はhttpdの設定でフルパス設定もできますね)のだと思いますが、
perlis.dllの在処はどのようにして認識しているのでしょうか?
また、ISAPI用語の意味が分かりません。


ご教授いただければ幸いです。
//以上がこのゲストブックの趣旨に合わない内容であれば申し訳ありません。


中田昭雄 nakata@st.rim.or.jp 1999/10/29 21:19

湯口さん、
APi521e の PerlIS.dll は私はやってみたことはないので調べてみます。
処理速度は特に変わったということを読んだ記憶はありません。


湯口 JY6S-YGC@asahi-net.or.jp 1999/10/29 06:18

下の投稿の追記になり申し訳ありません。

formデータを正常に付けつけない問題について、解決法があればご教授願います...


湯口 JY6S-YGC@asahi-net.or.jp 1999/10/29 06:10

perlis.dllについて

初めまして。湯口と申します。
perlis.dllをアップデートしてから不具合に合い、この掲示板を参考にさせていただきました。

先日までは、「110-i86.zip」に含まれるperlis.dllを使用しており、
特別不具合はありませんでしたが、「APi521e.exe」にアップデートしてから以下のようになりました。
これらの不具合については、EOさんも書かれていますが、より詳しく書きたいと思います。

・formデータの送信で、action= file.cgiこのように送信したものは正しく受け付けるが、
method=POSTこれで送信したものは無効になる(かなり致命的)

・一度formデータを送ると、以後フォームデータを送信していないにも関わらず、
フォームデータを送った内容のページを表示してしまう事がある(わかりにくい説明で申し訳ない)

−−−
ちなみに、上に「110-i86.zip」に含まれるperlis.dllには特別問題がないと書きましたが、
大量の配列(4000行、2MB程度)を読み込むとout of memoryというエラーが出ます。(perl.exeなら大丈夫)


というわけで、私は「110-i86.zip」に含まれるperlis.dllに戻して使っています。

#しかし、処理速度には興味があります。「110-i86.zip」に含まれるものと最新バージョンで、
#処理速度に有意な差というのはあるのでしょうか?


追記:httpdのproxyサーバを経由して送信したformデータにゴミが付く問題、私も遭遇していましたが
バージョンアップで改善したように感じます。ありがとうございます。