出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
[5341] 無題 |
投稿者:ひろのしまさん の <ホームページ> 2005/10/19 1:24:30 |
あるテーブルにインデックスであるIDを所有した状態で、 以下のようなロジックがあります。 Set cnc=Server.CreateObject("ADODB.Connection") Set rst=Server.CreateObject("ADODB.Recordset") Dim StrErr 'エラーの列を保存するコマンド Dim FldCnt 'フィールドのインデックス rst.Open "テーブル名",cnc,adOpenKeyset,adLockOptimistic If rst.Recordcount>=1 Then rst.Movefirst Do Until rst.EOF //空白であれば、列の位置と列名を保存する。 If IsNull(rst.Fields(FldCnt-1).value) Or rst.Fields(FldCt-1).value="" Then StrErr=StrErr & rst.Fields(FldCnt-1).OrdinalPosition End If If Not IsNull(StrErr) and StrErr<>"" Then cnc.Execute "Update テーブル名 set エラー='" & StrErr & vbCrlf & "' where ID=" & rst("ID") & ";" StrErr="" End If rst.MoveNext Loop End If rst.close cnc.close set rst=Nothing set cnc=Nothing このロジックが、500件前後になると限界なのか、突然”ページを表示できません。"というメッセージになってしまいます。 ASP,あるいはIISのどの設定が原因なのか把握できません。 どうかよきアドバイスをお願いします。 |
[5342] データ件数??(無題の質問の訂正) |
投稿者:ひろのしまさん の <ホームページ> 2005/10/19 1:29:42 |
あるテーブルにインデックスであるIDを所有した状態で、 以下のようなロジックがあります。 Set cnc=Server.CreateObject("ADODB.Connection") Set rst=Server.CreateObject("ADODB.Recordset") Dim StrErr 'エラーの列を保存するコマンド Dim FldCnt 'フィールドのインデックス rst.Open "テーブル名",cnc,adOpenKeyset,adLockOptimistic If rst.Recordcount>=1 Then rst.Movefirst Do Until rst.EOF For FldCnt=1 To rst.Fields.Count //ID列以外で、空白であれば、列の位置と列名を保存する。 If rst.Fields.name<>ID Then If IsNull(rst.Fields(FldCnt-1).value) Or rst.Fields(FldCt-1).value="" Then StrErr=StrErr & rst.Fields(FldCnt-1).OrdinalPosition & rst.Fields(FldCnt-1).Name & vbCrlf End If If Not IsNull(StrErr) and StrErr<>"" Then StrErr=StrErr & "以上の項目が空白です。" cnc.Execute "Update テーブル名 set エラー='" & StrErr & vbCrlf & "' where ID=" & rst("ID") & ";" StrErr="" End If Next End If rst.MoveNext Loop End If rst.close cnc.close set rst=Nothing set cnc=Nothing このロジックが、500件前後になると限界なのか、突然”ページを表示できません。"というメッセージになってしまいます。 ASP,あるいはIISのどの設定が原因なのか把握できません。 どうかよきアドバイスをお願いします。 |
[5343] Re:データ件数??(無題の質問の訂正) |
投稿者:はやしさん 2005/10/19 10:41:03 |
こんにちは。 > このロジックが、500件前後になると限界なのか、突然”ページを表示できません。"というメッセージになってしまいます。 タイムアウトは考えられませんか? 参考URL: http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/Default.asp?url=/resources/documentation/windowsserv/2003/standard/proddocs/ja-jp/qos_timeout.asp 追記: ご質問をされるときは、プロダクトのバージョンなど調査に必要な事項を詳細に記載すると、より適切なレスが付くかもしれません。 |
[5345] Re:データ件数??(無題の質問の訂正) |
投稿者:ひろのしまさん 2005/10/19 13:19:14 |
> 追記: > ご質問をされるときは、プロダクトのバージョンなど調査に必要な事項を詳細に記載すると、より適切なレスが付くかもしれません。 PC:Fujitsu BIBLO MF6/600R PentiumV メモリ256mb OS:Windows XP Professioal サーバー環境:IIS Web サイト側を利用 言語:Active Server Pagesの環境で使用できる言語で、現在VBScriptを使用(<%%>の中と、<Script Language="VBScript"><!-- --></Script>の中) タイムアウト(ConnectionTimeout)ですか・・・。 現在会社なので確認できません。 帰宅次第確認します。 |
[5357] Re:データ件数??(無題の質問の訂正) |
投稿者:ひろのしまさん の <ホームページ> 2005/10/20 23:58:42 |
はやしさん。コメントします。 [管理ツール]→ [インターネットインフォメーションサービス]の[既定のWebサイト]を右クリック→ [プロパティ]→ [Webサイト]タブ→ [接続]の中の[接続のタイムアウト] は既定値が900秒、つまり15分の設定でした。 で、試しに1800秒と設定しましたが、結果は"ページを表示できません"という画面に遷移され、最後のほうで "サーバーが見つからないか、DNS エラーです。" という文章でした。止まった件数も、毎回のような500件前後でした。 VBA上でほぼ同じロジックを組みましたが、6万件でも全く起きません。 方法としては、Accessのマクロかモジュールでそのロジックを呼び出すことも考えられますが、ASPでもAccessとは別の、何かデータアクセスの仕様制限等があるのでしょうか?コメントがあればよろしくお願いします。 |
[5359] Re:データ件数??(無題の質問の訂正) |
投稿者:はやしさん 2005/10/21 10:16:12 |
こんにちは。 > [接続]の中の[接続のタイムアウト] セッションのタイムアウトではなく、スクリプトのタイムアウトはどうなっていますか? また、IISのバージョンは? |
[5364] Re:データ件数??(無題の質問の訂正) |
投稿者:ひろのしまさん の <ホームページ> 2005/10/21 22:34:06 |
> こんにちは。 > > > [接続]の中の[接続のタイムアウト] > セッションのタイムアウトではなく、スクリプトのタイムアウトはどうなっていますか? > スクリプトのタイムアウトは90秒が既定値でした。で、最大の20,0000,0000秒(20億秒)の設定をしましたが、1万件の処理をしようとして1400件目ほどで止まってしまいました。 > また、IISのバージョンは? IIS Version5.1です。 ちなみに、セッションのタイムアウトは20分です。ここは既定値のまま変えていません。また、この部分のロジックにはセッション変数は使用していません。 |
[5366] Re:データ件数??(無題の質問の訂正) |
投稿者:はやしさん 2005/10/24 13:32:00 |
こんにちは。 処理件数 500件が 1,400件に増えたので、効果はあったようですね。 (以下、何件処理したいのか提示されていないのと、1件当たりどれくらいの時間が掛かるのかも分からないので、適切な回答かはわかりません。) 処理件数から考えると、WEB画面で処理させるよりもバッチ処理化などを検討されてはいかがでしょうか? |
[5371] Re:データ件数??(無題の質問の訂正) |
投稿者:ひろのしまさん 2005/10/24 15:24:46 |
> 処理件数から考えると、WEB画面で処理させるよりもバッチ処理化などを検討されてはいかがでしょうか? こんにちは。レスありがとうございます。 今私が作成しているのはとりあえず学習の為の物で、業務には関連はありません。VBAで作成したものをASPとVBScriptで作成しようと思ったまでです。Accessには仕様制限があったので納得はある程度行ったのですが、Webにおける仕様制限が今いち把握できなかったので、それを知りたかったのです。バッチ処理ですと、〜.batファイルになるんですかね。だとすれば未開の領域ですね。他のサイトでバッチ関連の情報を検索してみます。 ありがとうございました。 |
[5374] Re:データ件数??(無題の質問の訂正) |
投稿者:はやしさん 2005/10/24 15:41:32 |
こんにちは。 > バッチ処理ですと、〜.batファイルになるんですかね。 〜.vbsでもできますよ。 ウィンドウズのタスクスケジューラと組み合わせれば、割と簡単にバッチ化ができるのではないでしょうか。 |
TreeBBS For ASP V.0.1.3 |