We have a SQL 2005
clustered server (Microsoft Cluster Services) that is queried from 4 IIS6
Windows Server 2003 frontends. Each frontend runs both classic ASP apps
connection with SQL Server ODBC and .NET2 apps connecting with
System.Data.SqlClient. Ocassionaly we get a string of errors/timeouts opening a
connection lasting maybe 2 minutes.
One the classic ASP
apps we log one of these two errors:
Microsoft OLE DB Provider for ODBC
Drivers (0x80004005)
[Microsoft][ODBC SQL Server
Driver][DBNETLIB]General network error. Check your network
documentation
or
Microsoft OLE DB Provider for
ODBC Drivers (0x80004005)
[Microsoft][ODBC SQL Server
Driver]Timeout expired
on the
ADODB.Connection.Open
On the .NET2 apps we
log
Message Timeout expired. The timeout
period elapsed prior to completion of the operation or the server is not
responding.
StackTrace at
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection
owningObject)
at
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection
owningConnection)
at
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection
outerConnection, DbConnectionFactory connectionFactory)
at
System.Data.SqlClient.SqlConnection.Open()
at
System.Web.SessionState.SqlSessionStateStore.SqlStateConnection..ctor(SqlPartitionInfo
sqlPartitionInfo)
Source .Net SqlClient Data Provider
Any ideas for further debugging?
What does your connection string look like? Please try add "Connect Timeout=120" or "Connection Timeout = 120" in it, and see wether the problems go away.
Thanks!
Ming.
|||<add name="default" connectionString="Data Source=server;Initial Catalog=db;Integrated Security=False; uid=user; password=pw" providerName="System.Data.SqlClient"/>for .NET via TCP/IP
The regular ASP websites are having problems as well though using ODBC.
Upping the timeout seems like a band-aid at best and may lead to connections piling up and making the situation worse. There isn't a good reason for communication between the frontends and db server over a private Gigabit link to take over 30 seconds to connect.|||You can use your HOSTS file to define the servername-IP address combination to resolve DNS names. If you have a DNS server, define this in your DNS server. Try a simple test. Try installing any SQL Server client tool(Query Analyzer, Enterprise Manager, etc) on the server running your .NET app. Connect to your database server using this client tool. If it takes more than 5 seconds to connect, there's something wrong with your network|||
Did you get an answer for this?
we are facign similar issues.
We have 4 way cluster sql server 2005 on SP2
|||No I haven't had any answers. The problem is definitely more pronounced during heavier traffic so I wasn't able to debug much during the lull during the summer.|||We have a similar issue with our Clustered SQL Server 2005. We are seein it a lot in a VB 6 executable, but I have gotten the errors in Server Management Studio, too. We get one of two errors:
Timeout expired
or
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
We have run Sysinternals Process Monitor on a PC that receives these errors and have seen a NAME NOT FOUND result on queryopen operation for CLUSAPI.DLL, RESUTILS.DLL and ntdsapi.dll. The path it is looking in is the application path C:\Program Files\ROAS. These DLLs don't exist in this folder, but do exist in C:\Windows\System32.
The first two are MS Clustering DLLS and i asume with a name like ntdsapi the other is a server OS DLL.
No comments:
Post a Comment