Thursday, January 15, 2009

Why do I get 80040E31 errors?

Why do I get 80040E31 errors?
I have heard many people saying that their web site is chugging along, and suddenly they get this error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC SQL Server Driver]Timeout expired or
Microsoft OLE DB Provider for SQL Server error '80040e31' Timeout expired This can often be fixed by "kicking" the server, e.g. hitting refresh on the affected ASP page eliminates the problem. But how about a longer-term fix? If you have MDAC 2.6 installed, upgrade to the latest version of MDAC from MDAC Download Page. As an immediate workaround, force TCP/IP lookup in your connection string and make sure you refer to the SQL Server by IP address, not by name. For more info see Article #2082 and Article #2126. The timeout can be caused by a name -> ip lookup. This is a problem with the version of DBNetLib.dll that shipped with MDAC 2.6 -- see KB #300420 for more information. While a quick bandage would be to increase timeout values (see Article #2066), a better approach would be to make your queries more efficient. For many ideas, see Article #2424.

No comments: