Our company, primarily a software dev house, also manages an SQL Server
DB for one of our clients. A few days ago, we experienced repeated
timeouts in our .NET web and desktop applications, which threw this
error:
System.Data.SqlClient.SqlException: Timeout expired. The timeout
period elapsed prior to completion of the operation or the server is
not responding.
The timeouts seemed to be caused by locks placed on the database by a
stored proc which adds a new customers, when an order is placed. These
locks could be seen in Enterprise Manager / Management / Current
Activity / Locks, some of the locks' properties pointing to this stored
proc.
Now the strange part: we rebooted the server in question, which had no
apparent effect, ie still lots of locks, timeouts, etc. But a few
hours later, we pushed "Stop" and "Start" in the SQL Server Service
Manager - and everything magically started working again, no further
problems since then (24 hours).
So my key question: when you reboot your machine, does SQL server try
to "retain state" in a way that could have retained these locks? And
when you Stop/Start in "Service Manager", is that a different kind of
restart, which may have cleared the state / fixed these issues?
If the answer to these questions is yes, then we can rest a bit easy,
just say the DB got screwy, we had to restart it, but otherwise, we
have some serious investigating to do, to try to prevent this
recurring.
Thanks very much for any advice.
Harlan Wood
sfk3ml4x9w35
_____at_____
thegoldensun.comwhen you reboot your machine, does SQL server try
to "retain state" in a way that could have retained these locks? And
when you Stop/Start in "Service Manager", is that a different kind of
restart, which may have cleared the state / fixed these issues?
--both do the same thing, there is nothing that SQL will retain the
locks..in any case, SQL will release the locks..
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment