- PR -

ASPでwin98では表示されるが2000、XPでは表示されない

1
投稿者投稿内容
PoH
常連さん
会議室デビュー日: 2003/09/09
投稿数: 48
投稿日時: 2006-12-14 13:25
ASP.netではなくASPなのですが会議室がないので
ここで質問させていただきます。

WindowsNT4.0で動かしていたIIS上のASPのプログラムを
Windows2003ServerのIISに乗せかえました。

そうすると大量のデータを表示する際
(Oracleにてデータを取得しテーブルにて表示)
クライアントがWindows98なら最後まで表示されるのですが
Windows2000およびXPの場合表示されず、延々読み込み中になります。

途中で中止すると読み込んだ途中のレコードまでが表示されます。
大量といってもデータは数百件であり、
98でも見ることができるし2000、XPでは中止すれば途中まで
表示されるので、ソースが間違っているわけでもなさそうです。
また同じページで件数を絞ると完全に表示されます。

ためしにWindows2000でFireFoxで開いたところ同様に
途中のレコードまで表示したところでとまったままになります。

止まるレコードはいつも一定ではなく
データ事態に問題ある文字列が入っていることもないようです。

同様の現象をご存知の方
ご指導いただけましたら幸いです。


甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-12-14 22:47
おそらくはASPのバグじゃないかと・・・

NT4.0からServer2003にしたという事は、Oracleのバージョンも当然あがっているよね。Oracleってバージョンが変わると挙動が違うときが良くあるので・・・(^^;

まずは地道にデバッグして、何処でループしているのか確認してください。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2006-12-15 10:05
NTの環境がまだあるのなら、2003とNTで同じ結果が得られる状態にして、
得られる結果(ブラウザの表示ではなくHTMLソース)の相違点を確認してみては?
PoH
常連さん
会議室デビュー日: 2003/09/09
投稿数: 48
投稿日時: 2006-12-15 11:07
甕星さん ひろ@yaさん 回答ありがとうございます。

引用:
Oracleってバージョンが変わると挙動が違うときが良くあるので・・・


バージョンは確かに8.1.7から9.2.0にあがっています。

しかしOracleのセッションで確認したところ、
結果は返してきておりそれ以降のところでおかしいようです。

データを読み込んでから、テーブルに表示するデータを
ASPのソース内でループして作成しているのですが
読み込み途中のソース表示を行うと、かなり中途半端な所で止まっている状態です。
いつも同じ所で止まっているわけではなく、その時により場所は異なります。

ちなみにループ内にResponse.Flushを入れるとすべて表示されました。
なにか表示するまでの間、どこかのBufferで作業しているのが溢れたり
しているのでしょうか?98ではそのBufferを使わないとか・・・
一応98はIE6.0を使用しています。
サーバーのIISのバージョンによってBuffer出力の設定は変わると思いますが
クライアントのOSバージョン違いで異なるものなんでしょうか?

一応Response.Flushにて解決はしたのですが
仕組みわからず正常稼動も気持ち悪いので
ちょっといろいろ調べてみたいと思います。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-12-16 04:28
Response.buffer (ASP) が False に設定されている時、TCP/IP の接続が切断される

あと、IIS 6.0 では buffering の最大 size が metabase で制限されているため、大量の結果を返す場合には、小分けにして client に送信するように coding するよう心がけるべきでしょう。
1

スキルアップ/キャリアアップ(JOB@IT)