人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Win2003Server+IIS6.0+ActivePerl5.8+DB2というシステムでPerlで作ったCGIを実行した際、「Can’t load ’C:/XXX/DB2.dll’ for module DBD::DB2: load_file:指定されたモジュールが見つかりません。 」というエラーがでます。誰か原因がわかる人いませんかね?

●質問者: oasis440
●カテゴリ:コンピュータ 学習・教育
✍キーワード:CGI DB2 DLL MODULE Perl
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● typista
●20ポイント

http://www.issociate.de/board/index.php?t=msg&goto=252850&am...

: Fehlerseite

英語のサイトですが似たような事例がありました。

?メッセージ

Can’t load ’D:/Perl/v5.6.1/site/lib/auto/DBD/DB2/DB2.dll’

for module DBD::DB2: load_file:

The specified module could not be found

at D:/Perl/v5.6.1/lib/DynaLoader.pm line 206

?原因

Perhaps a required shared library or dll isn’t installed where expected


DB2.dllが存在しないか、存在していてもパスが通っていないのではないのだと思います。

oasis440さんが提示されているメッセージからも、同様に読み取れます。

→ C:/XXX/DB2.dllに実際に存在しますか?


存在しなければ、DB2のインストールディレクトリからコピーすれば、このメッセージについては、解決すると思います。

・・・が、本来はDB2.dllを探しにいく設定をDB2のインストールパスに変更するのが正しいはずですので、また他のエラーにつながる可能性はあります。その切り分けとしては試す価値はあるはずです。


私はIIS+DB2の環境を触ったことがないので、そこの辺りは、説明できず申し訳ありません。

◎質問者からの返答

わかりにくい質問に迅速な回答をしていただき、どうもありがとうございました。DB2.dllはエラーログで指定されている場所にちゃんと存在してたりします。それなのにCan’t load といわれるとはこれいかに。IISの設定あたりに疑惑の目を向けています。


2 ● googoogoo
●20ポイント

http://www.yahoo.co.jp/

Yahoo! JAPAN

URLはダミーです。

windows2003ならば、セキュリティの設定で、DB2.dllのあるフォルダに、読み取りの権限がないのではないでしょうか?

DB2.dllのフォルダが読めない=モジュールがないって判断されているとか・・・

◎質問者からの返答

なるほど、ちょっと確認してみます。どうもありがとうございました。


3 ● typista
●20ポイント

http://www.din.or.jp/~bigstone/cgilab/cgitips/iis.html

IISでPerl CGIを動かすには?

ActivePerlの導入設定ページ(oasis440さんは確実に設定済みだと思いますが)ですが、

2-1. スクリプトマッピング

を見ると、同様のことがDB2でも必要かと思います。

設定済みですか?

ん?でも、設定済みだからこそDB2.dllが見つからない(=DB2.dllを探しにいってる)と言われるってことですもんね。

※ただ、念のためご確認ください。


これでもなければ、やはりパスだと思いますが・・・

大変、失礼な話ですが、コマンドプロンプトで

dir C:/XXX/DB2.dll

※’C:/XXX/DB2.dll’は、エラーログからコピペ(手入力しない)

を試されては。

私もSEですが超簡単(基本)なことほど、「あり得ない」とタカをくくって見逃してしまうことがあります。

◎質問者からの返答

回答どうもありがとうございます。どうやら原因はActivePerlとDBD::DBD2のバージョン不整合のようです。とりあえず解決したので終了します。どうもありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ