SQLServer2008が長時間アクセス無い場合スリープ(?)してしまう
OS:Windows Server 2008 R2
Server:IIS 7.0
ASP.NET(VB)とMicrosoft SQLServer 2008でWebアプリケーションを構築しています。
去年にトラブルがあり、OSを再インストールすることとなり、環境が一度まっさらになりました。
それまでは、長時間アクセスが無くても普通にアプリケーションが動作しており、トラブルはありませんでした。
OS再インストール後、何も問題なく動作していたのですが、長時間アクセスしていないと、必ず一度、データベース接続のタイムアウトが発生し、その後問題なく接続ができる、という状況になっていることが分かりました。
SQL Server Management Studioでも、長時間SQLを実行していないと、SQLを実行したときにタイムアウトとなり、再接続が行われ、その後スムーズに動作します。
恐らく、SQLServerの設定で変更すべき部分があるのかと思いますが、SQLServer アイドル時間、などと探しても思うような資料が得られない状況となります。
ご存知の方おられましたらよろしくお願いいたします。
-2015/03/04 13:35
追記:接続コード
<%@ import Namespace="Microsoft.VisualBasic.FileIO" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Type" %>
<%@ import Namespace="System.IO" %>
<%@ import Namespace="System.Security" %>
<%@ import NameSpace="System.Security.Cryptography" %>
<%
Dim dbConnection as sqlconnection = new sqlconnection("Server=[ADDR];UID=[ID];PWD=[PASS];Database=[DBNAME];")
Dim sql as String
Dim result as Integer
Dim cmd as sqlCommand
Dim dbRead as sqlDataReader
dbConnection.open() ' ここでタイムアウトエラー
%><!doctype html>
-中略-
<%
dbConnection.close()
%>
-2015/03/30 追記
回答に追加を頂き、試してみたところ、まさにこれだという内容でした。
参考先サイトによると
sp_dboption DBNAME
として実行すると、 autoclose が含まれる場合があり、これがあると自動終了になるようです。
ですので、次のコマンドでこれを取り払います。
ALTER DATABASE DBNAME SET auto_close OFF
以上です。