• 締切済み

IIS Perl ADO ORACLE の組合せで障害が出ており困っております・・・

はじめまして、皆様宜しくおねがいします。 あるシステムを4台マシンでテストしておりまして障害が出ており解決できず泣く泣く投稿致しました。 内訳は以下の通りになります。 (A) win2Kp Oracle816 (B) win2Kp SQL*Net8 ADO IIS5 Perl613 (C) win2Kp SQL*Net8 ADO IIS5 Perl613 (D) win2Kp IE6 DのマシンからB及びCのWebサーバへアクセスし webサーバはAにPerlにてADO接続します・・・ ところが、Bの環境においては問題ないのですがCのWEBサーバへ接続すると以下の様なメッセージが出てしまい 大変困っております。 調査方法として何から手をつけて良いのか御教授願えますでしょうか 現在迄の調査結果と致しましては・・・ ・ IISの、ネットワークの設定に違いは見受けられません・・ ・ WEBコンテンツは全くAからのコピーです ・ CのマシンからAに対し SQL*PLUS、又はODBC接続でAのXXXXXXX表を参照する事は確認しました エラー内容 -・-・-・-・-・-・-・-・-・-・ CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: Can't call method "eof" on an undefined value at D:\Inetpub\HHHHHHHH.cgi line 104. HHHHHHHH.cgi のソース -・-・-・-・-・-・-・ 098 my $conn = CreateObject OLE "ADODB.Connection" || die "CreateObject: $!"; 099 $conn->Open('DSN='.$ORA_DSNAME.';UID='.$ORA_USERNAME.';PWD='.$ORA_PASSWORD); 100 my $sql = "select XXXXXXX from XXXXXXX where XXXXXXX = '$u' AND ((NENDO = '$yr1') or (NENDO = '$yr2'))" ; 101 # SQLの実行 102 my $rs = $conn->execute($sql); 103 my $db_passwd = ""; 104 if ($rs->eof()) {

  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

エラーメッセージが、$rsがundefinedと報告しているので、 ・$conn->execute()が正しく実行されているか? ・それ以前に、$conn->Open()は成功しているか? ――を確認されては。 ここらへんエラーハンドリングがされてないようですので。

zukasiyo
質問者

補足

早速ありがとうございます。 恐らくexecute()で正しくSQL文が実行できないのでしょうが・・・ BのWEBサーバと全く同一のソースなだけに原因がわからないのです・・・ どこから手をつければよいのでしょうか・・

関連するQ&A

  • IISでCGIとしてのPerlが動かない

    Win2K ProにてIISでローカルサーバーでサーバーサイドスクリプトの勉強中です。 ASPは標準でついているので、PerlとPHPを組み込みました。 PHPは内部プロセス型ではなく、CGIバージョンですが、正常動作しました。 もちろんASPも。 それで問題なのですが、Perlがどうしても動きません。 PHPと同じように実行ファイルのパスや拡張子の設定はできているはずです。 しかし、いつまでたっても出力が出ず、2分くらいたってCGIタイムアウトとなってしまいます。 PerlにはActive PerlとCygwin付属のPerl両方試しましたが、タイムアウトです。 ファイルをコンソール上で実行してみましたが、Active PerlもCygwinのPerlも、期待通りの出力がなされています。 ちなみに、shファイルをCygwinのbashに関連付けて、実行させましたが、コンソール上での出力とはうらはらに、ブラウザ上ではやはりタイムアウトとなりました。 PerlのソースはいずれもほかのところのApacheでは動いているものです。 httpヘッダも正常です。 ソースの文字コードは英語のみ、EUC、改行コードcr+lf、lfのみなど、いろいろ試しましたがダメでした。 なにが原因なのでしょう。 IISを使っている方、アドバイスお願いします。

  • IIS或いはwinapache?

    IISでPerlのCGIはどう設定すれば動くようになるのでしょうか? またはWindowsのapacheではVBScriptのASPは動くのでしょうか? Windows2000のWebサーバーでどちらを使うか迷っています。(WindowsのIISはあまりよくわからないので・・・) Linuxのapacheなら多少は解るのですが・・・

  • Win2000, IIS 上でPerl を動作させる場合の留意点について

    初めて質問させていただきます。 ホストをWin2000でIISを使ってデータベースサーバを構築しようとしています。CGI言語としてPerlを使うのですが、うまくPerlが動作していない様子になってしまっています。 上記のような組み合わせでデータベースを構築する際に、PerlのためのWin2000側、IIS側の設定事項などはありますでしょうか。ご存知の方、いらっしゃいましたらご回答のほどよろしくお願いいたします。 以上、よろしくお願いいたします。

  • IISでCGIの設定がうまくいきません

    すみません質問させてください。 今、XPでIISをインストールしてCGIが動くようにしてるんですが うまくいきません。 http://localhost/hello.cgi というurlで実行できると思うんですが、 いつまでも読み込んでるだけで、実行されない感じです。 実行するCGIはHELLOと表示する単純なものです。 また、.cgiファイルは実行プログラムをC:\perl\bin\perl.exeに 指定しています。 IISでは、規定のWEBサイトのプロパティ>ホームディレクトリの 「構成」で.cgiの実行ファイルをC:\perl\perl.exeに指定しています。 とりあえずやるだけやったと思ってるんですが、うまくいかないのはどうしてでしょう。 よろしくお願いします。

  • IIS5.1&SSI

    WindowsXP Pro の環境でIIS5.1でWebサーバを立ち上げる為の仕組みの勉強をしています。 CGIを組み込むべくActivePerlを導入しました。 Perlで組んだCGIの動作はできるようになりましたが、 <!--#exec cgi="xxxx.cgi"--> が動作しません。 ものの本によると、SSIはデフォルトで設定済みとなっています。 どこで確認したらいいか教えて下さい。

  • CGI timeoutって? IISでのcgi設定

    すみません質問させてください。 今、XPでIISをインストールしてCGIが動くようにしてるんですが うまくいきません。 http://localhost/hello.cgi というurlで実行できると思うんですが、 いつまでも読み込んでるだけで、実行されない感じです。 CGI timeoutといわれます。 実行するCGIはHELLOと表示する単純なものです。 また、.cgiファイルは実行プログラムをC:\perl\bin\perl.exeに 指定しています。 IISでは、規定のWEBサイトのプロパティ>ホームディレクトリの 「構成」で.cgiの実行ファイルをC:\perl\bin\perl.exeに指定しています。 とりあえずやるだけやったと思ってるんですが、うまくいかないのはどうしてでしょう。 よろしくお願いします。

    • 締切済み
    • CGI
  • IIS6.0でcgiが認識できない

    IIS6.0でcgiが認識できないのですが 以下の構成でどうなのでしょうか? 仮想パスは認識できているようなので、 http://*.*.*.*/cgi-bin/index.html は表示できます。 ■環境:win2k3/ActivePerl5.8.4/IIS6.0 #################################### アプリケーションの構成マッピング ------------------------------------ ●ISAPI拡張をキャッシュする(checked) ●アプリケーションの拡張子 .pl D:\user\local\bin\perl.exe GET,POST .cgi D:\user\local\bin\perl.exe GET,POST ※スクリプトエンジン(checked) ※ファイルの存在を確認する(checked) #################################### perlの実行ファイルは,ググった結果、以下のものも試してみましたが だめでした。 perlIS.dll perl5.8.4.exe perl.exe "%s" %s どうぞお願いします。

  • IIS4.0の設定について

    IIS4.0+Namazu for Win32で全文検索システムを作ろうと思い、NT Server とIIS4.0をセットアップし、Namazuもいれて動作確認を取ることが出来ま した。 ところが、NT Serverのコンソール上(というのが正しいかどうか分かりま せんが、ローカルログオンした場合という意)からは http://namazu/cgi-bin/namazu.cgi.exe などでWebを使った全文検索が可能なのですが、ネットワークコンピュータ からはPermission deniedとなってしまいます。 それどころか、IISで標準提供されているコンテンツすら見ることが出来ま せん。 pingではIP Reachableなのは確認できましたし、IISのFTPサーバ機能は問題 なく利用できています。名前の解決も問題ありません。 おそらくIISのWWWサービスの設定に誤りがあるのだろうと思われるのですが、オンライン マニュアルに載っている事項は一通り確認したつもりなのですが、解決でき ませんでした。 なにか良い知恵をお持ちの方がおられましたら、どのあたりの設定をすれば 良いのかご教授ください。 よろしくお願いします。

  • perl >> DBI >> DBD >> oracle8でエラー

    perlからDBI経由でoracleに接続したいのですが、 なぜか DBI->connectのところで失敗して下記のようなエラーが出ます。 `CONNECT ERROR ORA-1034: ORACLE not available oas userでtelnetで入り、直接perl scriptを起動すると問題なく動作するの ですが、なぜかOAS経由でブラウザーからCGIとしてcallすると 失敗するのです。 もう2日も悩んでます。 どなたか原因がわかりましたらご教授ください。 ---- 環境 --- perl 5.005_03 OAS 4.0.8.1 DBI 1.30 DBD-Oracle 1.12 OS solaris2.6 接続先DBは別のsolarisマシンに入ってる。 ----------------ソース----------------------------- #!/usr/local/bin/perl use DBI; $dsn = 'DBI:Oracle:orcl'; $user = 'testuser'; $password = 'testuserpass'; $dbh = DBI->connect($dsn, $user, $password) or die "接続できません"; my $sth = $dbh->prepare("select * from munec"); $sth->execute; while(@row = $sth->fetchrow_array) { print "@row\n"; } ---------------

  • IIS7.0でPerlのCGIにてバックグラウンド

    はじめまして、初心者の質問で恐縮ですが、以下の点を教えて欲しいです。 IIS7.0のWebサーバで、CGIプログラムをPerlで作っているのですが、forkした子プロセス で時間のかかるバックグラウンド処理を行って、親プロセスでWebブラウザに返す処理を しようとしていますがうまくいきません。重たい処理が終了するまでWebブラウザに応答 されません。(子プロセスの終了が終わるまで、親プロセスのHTML表示処理がWebブラ ウザに返答されません)通常、子プロセスでclose(STDOUT)で親プロセスのHTMLの 表示処理が出来ると思っていますが。。。 どのようにすれば良いか教えてもらえると幸いです。以下は参考のプログラムです。 よろしくお願いします。 $|=0; if ( $pid = fork){ #親プロセス &disp_html(); #HTMLを表示させるプログラム wait; }elsif (defined $pid) {  #子プロセス close(STDIN); close(STDOUT); close(STDERR); &heaby_prog(); #重たい時間のかかる処理 exit 0; } else { die "Can't fork: $\n"; } よろしくお願いします。