dポイントプレゼントキャンペーン実施中!

はじめまして
IISの問題か、SQL Serverの問題なのかわからないので、両カテゴリーに同様の質問をさせていただいております。

OS:2003Server、DB:SQL Server2000

WEBサーバ、DBサーバは別サーバです。
CSVを出力するASPを実行させているのですが、出力件数が多い時に下記エラーとなります。
(数十件の場合は、問題ありません。)

【エラー内容】
 Microsoft OLE DB Provider for SQL Server エラー '80004005'
 [DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。
 /daityo/CsvOut.asp,行168

エラー箇所としては、SQLを実行しDBにアクセスする命令時に発生します。(実行毎に、エラーとなる行が変わります。)

どこかで、タイムアウトしているのかと思い、'MetaBase.xml’の下記部分の値を変更しましたが、改善されませんでした。

AspMaxRequestEntityAllowed="102400000"

現在、手詰まり状態です。
皆様のお力をお貸しいただけないでしょうか?
宜しくお願いいたします。

A 回答 (4件)

.Netフレームワークとしてのコマンド待機時間ですので、


SQLServerに設定するのは今回はなしかなと。

MSDNのサンプルコードを参考にしてください。

プロパティですので、SQLを実行するたびに・・は必要ないですが、プログラムの起動時には必要な前処理になります。No.3 さんの回答で、Connectionは1回しか実行していない、と書かれていますよね。同じことです。
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ありません。回答、ありがとうございます。

現在、同環境が社内にないため、客先にて確認しなければなりません。
近々、確認を行う予定です。

現在、下記の様にfunctionでDBに接続しているものに、ConnectionTimeout、CommandTimeoutを追加してみようと思います。
以前は、Win2000Serverで動いていたものを、今回2003Serverに移設したのですが、IIS5とIIS6では、この辺の設定をしてあげないとエラーになるんでしょうか?

また、お手数おかけしますが、ご確認お願いします。

****************************************

function DB_Open()
'DBOPEN
strcon="server=***;uid=***;pwd=***;database=***"

set currdb=server.CreateObject("adodb.connection")
   currdb.ConnectionTimeout = 300
   currdb.CommandTimeout = 300
   currdb.Provider="SQLOLEDB"
   currdb.ConnectionString=strcon
   currdb.Open
end function

****************************************

お礼日時:2005/05/30 10:50

プログラムがどのように組まれているかわからないので何とも言えませんが、SQLServerへのConnection数が限度を超えているとかないですか?


例えばレコードを1件取得するたびにConnectionを作っているなど・・・
一回プログラムを見直してみるといいかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ソースを添付できるとよいのですが・・・
Connectionは、asp実行時に一回しか行っておりませんので問題ないかと思われます。
でも、そういった問題も考えられるということで、勉強になりました。
ありがとうございます。

お礼日時:2005/05/26 12:02

ぬおっ、参考URLが入りきらなかったらしい。

。。

すいませんが、ご自分で
SqlCommand.CommandTimeout
をググってください。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

確かに実行時にCommandTimeoutの初期設定である30秒前後でエラーとなります。

asp初心者の為、追加で質問させてください。

set cdrs=currdb.Execute(sqlstr)

という様に、SQLを実行しているのですが、その度に

SqlCommand.CommandTimeout=60

という様に命令しなければならないのでしょうか?

それとも、SQL Serverの環境設定等あるのでしょうか?

お手数おかけしますが、宜しくお願い致します。

お礼日時:2005/05/26 11:56

SQLがタイムアウトを起こしているので、IISは関係ないでしょ。



SqlCommand.CommandTimeout で調べてみてください。

参考URL:http://www.microsoft.com/japan/msdn/library/defa …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!