- PR -

SqlTransactionクラスのcommitメソッドでエラー

1
投稿者投稿内容
よしまさ
常連さん
会議室デビュー日: 2003/11/04
投稿数: 20
投稿日時: 2006-05-10 14:54
お世話になっております。

ASP.NET1.1、SQLServer2000で
でECサイトを構築し、比較的安定して動作しているのですが、
ごく稀に、SqlTransactionクラスのCommitメソッドでエラーが発生し、
困っております。

エラーの内容は以下の通りです。

タイムアウトに達しました。
操作が完了する前にタイムアウト期間が過ぎたか、
またはサーバが応答していません。

コマンドタイムアウトエラーが発生しているのだと思うのですが、
DBを見てみると、はコミットは正常に終了しているのです。

いろいろと探していると、
以下のサイトに
http://www.dotnet247.com/247reference/msgs/48/244951.aspx

The transaction timeout is linked to the Connection Timeout
(not the command).

というようなことが記述されていたのですが、
ConnectionStringの
Connect Timeoutはデフォルト(15秒)のままです。

どなたか、
SqlTransactionクラスのCommitメソッドで
同じようなエラーが発生したことがある方はいらっしゃらないでしょうか。

(環境)
ASP.NET1.1
IIS6.0
SQLServer2000 64bit (SP4)
Windows2003Server (SP1)
あき
ベテラン
会議室デビュー日: 2003/07/23
投稿数: 72
投稿日時: 2006-05-10 20:39
おそらく、ConnectionTimeoutの時間切れになっているものと思われます。

以下を試してみてください。(現状の設定がデフォルトのままであると想定しています)
1. constring(SqlConnection.ConnectionStringプロパティ)に
Max Pool Size=100以上の値を追加設定する。
2. SqlConnection.ConnectionTimeoutプロパティに15秒以上の値を設定する。
3. constring(SqlConnection.ConnectionStringプロパティ)に
Pooling=falseを追加設定する。
よしまさ
常連さん
会議室デビュー日: 2003/11/04
投稿数: 20
投稿日時: 2006-05-11 10:17
あき様
ご返答ありがとうございます。

ご教授いただいた方法で試してみます。

ちなみに、以下のサイトにも似たようなことが記述されておりました。
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=371086&SiteID=1

ただ、コミット命令に15秒以上もかかることはあるのでしょうか。
少々疑問です。
1

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