C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ASP呼び出し中にPCがフリーズ


(過去ログ 90 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■54043 / inTopicNo.1)  ASP呼び出し中にPCがフリーズ
  
□投稿者/ らん (1回)-(2010/10/04(Mon) 08:55:55)

分類:[ASP.NET (VB)] 

WinXP SP3,VB.NET2005
DB:SQLServer2003

ASPの問題ではないかもしれませんが、開発はASPで行っていますのでこちらで質問させていただきます。

複数のクライアントPC(IE)からデータを入力し、ASPでサーバーのDBに登録するというシステムを作成しています。
問題なく動作していたのですが、クライアントの一台が「登録」ボタンを押下後にフリーズしたようです。

その後DBを確認したところ、テーブルにデータが新規登録されていたのですがテーブルデータの内容に抜けがありました。
登録時に入力チェックを行っておりそれをクリアしないと登録処理は実行しません。
なのでブラウザで入力した際は正しいデータが入力されていたと推測しています。

データ内容に抜けがあったとは、例えば
金額、消費税、税込金額という入力項目があったとして、それぞれテーブルにも同じ項目があるとします。
そこで全ての項目に入力して「登録」としたのに消費税だけが0で登録されていたという感じです。

クライアントからのリクエスト送信中にフリーズした場合、このようにいくつかの項目の値がASP側へ渡らないということはありえるのでしょうか?



引用返信 編集キー/
■54047 / inTopicNo.2)  Re[1]: ASP呼び出し中にPCがフリーズ
□投稿者/ 魔界の仮面弁士 (1846回)-(2010/10/04(Mon) 10:38:38)
# 回答に非ず

No54043 (らん さん) に返信
> 分類:[ASP.NET (VB)] 
> ASPの問題ではないかもしれませんが、開発はASPで行っていますので
ASP と ASP.NET を混同しておられませんか? これらは別物です。

ASP.NET の場合には、現在の分類[ASP.NET (VB)]で正しいのですが、
ASP であるならば、[レガシ ASP]という分類を選択してください。


> WinXP SP3,VB.NET2005
> DB:SQLServer2003
SQL Server 2003 という製品はありません。
Windows Server と、SQL Server を混同しておられませんか?
(もしかして、Small Business Server 2003 をお使いでしょうか)

おそらくは、2000/2005/2008 R2 のいずれかを利用されて
いるのだと思います(それ以前のバージョンだと 7.0 とか)。


> 押下後にフリーズしたようです。
SQL Server 側がロック状態に陥ったのか、それとも、
Web Server が応答無し(または長時間処理)になったのか、あるいは
ブラウザー側がフリーズ状態になったのかの切り分けができていないので
これだけの情報では判断は難しいと思います。


> その後DBを確認したところ、テーブルにデータが新規登録されていたのですが
> テーブルデータの内容に抜けがありました。
トランザクション処理は、どのように行われていますか?
ASP.NET なら、ADO.NET の SqlTransaction ないしは TransactionScope クラス、
ASP なら、ADODB の BeginTransaction / CommitTransaction メソッドです。

自動コミット モードに任せていた場合、更新エラー等が発生した場合には、
エラーの直前までの更新処理はデータベースに範囲されるものの、
エラー発生個所以降の処理はごっそり抜けおちることになりますので、
中途半端に更新されてしまう可能性があります。
例外処理の作りこみ方にもよりますけど。
http://msdn.microsoft.com/ja-jp/library/ms187878.aspx


> そこで全ての項目に入力して「登録」としたのに消費税だけが0で登録されていたという感じです。
処理漏れ(If 条件抜け)というかコーディングミスのような予感もしますが、
正直なところ、状況を聞いただけでは現象を推測するには足りなさそうです。

単一の処理だけではなく、並行で実行されていた別の処理が原因で
フリーズ等の動作が起きることとも無いとは言えませんので、さしあたり、
消費税項目を更新または登録している処理、すべてを見直してみては如何でしょう。
引用返信 編集キー/
■54058 / inTopicNo.3)  Re[2]: ASP呼び出し中にPCがフリーズ
□投稿者/ らん (2回)-(2010/10/04(Mon) 11:57:08)
No54047 (魔界の仮面弁士 さん) に返信

いろいろと投稿文に問題があったようで、ご指摘いただいてありがとうございます。

> ASP.NET の場合には、現在の分類[ASP.NET (VB)]で正しいのですが、
> ASP であるならば、[レガシ ASP]という分類を選択してください。

ASP.NETで間違いありません。

> おそらくは、2000/2005/2008 R2 のいずれかを利用されて
> いるのだと思います(それ以前のバージョンだと 7.0 とか)。

2003ではありません。2005の間違いです。
すみません。

> SQL Server 側がロック状態に陥ったのか、それとも、
> Web Server が応答無し(または長時間処理)になったのか、あるいは
> ブラウザー側がフリーズ状態になったのかの切り分けができていないので
> これだけの情報では判断は難しいと思います。

そうですか。情報が少なすぎますね。
おっしゃる通りです。

> トランザクション処理は、どのように行われていますか?
> ASP.NET なら、ADO.NET の SqlTransaction ないしは TransactionScope クラス、
> ASP なら、ADODB の BeginTransaction / CommitTransaction メソッドです。

SqlTransactionでトランザクションをかけています。

> 処理漏れ(If 条件抜け)というかコーディングミスのような予感もしますが、
> 正直なところ、状況を聞いただけでは現象を推測するには足りなさそうです。

ご指摘いただいたようにまだ他に調査するべきところがありそうです。
視点を変えて調べてみたいと思います。


ご回答いただきありがとうございました。




引用返信 編集キー/
■54061 / inTopicNo.4)  Re[3]: ASP呼び出し中にPCがフリーズ
□投稿者/ マサヤ (161回)-(2010/10/04(Mon) 12:49:10)
DB側の登録処理件数が膨大であるとかはないでしょうか?
Insert文を見ないことにはなんともいえませんが。

あと、SET LOCKなどは使用されていますでしょうか?

さらに、DBに登録ではなく、CSVに出力、とした場合はうまくいくのでしょうか?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -