0

Our website has started timing out like crazy today. All of our clients are finding it unusable. The only error we can seem to trace down as a potential problem is this:

SQLAllocHandle on SQL_HANDLE_DBC failed Error ASP Description Error Category Microsoft OLE DB Provider for ODBC Drivers

I have no idea what it means or how to go about fixing it. Anyone ever encountered this error before?

Currently, you can log in to our site, but then once you go to do anything else, you find yourself logged out or nothing happens. We have a lot of Ajax going on so the "nothing happens" probably has to do with the Ajax pages not loading properly due to logouts and so nothing displays to the user.

Like I said, I'm at a loss. Anyone have any advice on this error?

EDIT

I realize that this isn't necessarily a programming question, but we are a small startup company that just yesterday started talking about how we need to get a backup server running. Apparently we talked about it too late. We don't have a DBA, just 2 mid level programmers trying their hardest to keep our clients happy. So please, if you have any assistance give it but please don't close my question right now.

EDIT 2

Turns out we had something on our server running called "ServerMask" that makes our IIS server look like Apache to the outside world. Shutting it down fixed our issue. Still no idea why it was messing up but it was the problem apparently.

Thanks to everyone who tried to help.

3
  • Check the server's Event logs? Turn on tracing?
    – Mike Atlas
    Mar 23, 2010 at 14:53
  • The event logs are how we got to that error. What shows on the site is just a "timeout".
    – Pselus
    Mar 23, 2010 at 15:47
  • Glad to hear the issue is solved. Had a configuration or other change been made that led to outage?
    – jl.
    Mar 23, 2010 at 20:08

6 Answers 6

4

If you are having immediate and real-time problems and they are impacting your business right now, and you don't have in-house tech support (or if you do and they're at their wits end), I recommend you open a case with Microsoft Technical support. If you have one or another type of MSDN license you may have a few free support calls, otherwise you'll have to pay with credit card, and it was $250 last time I had to pay.

The number should be 1 800 642 7676 (got it from the "just in case" sticky on the far side of my monitor, I don't think it changes at all often). I've had good results in the past with them; they may or may not be fast, but they will be pretty thorough.

1
  • I think that's our next step.
    – Pselus
    Mar 23, 2010 at 15:22
1

Sounds like a you are running out of some resources. Change to the MSSQL OleDB driver rather than the ODBC Oledb provider. It may not fix the problem but it will probably emit more descriptive errors. Check for the classic resource contention issues like connection pooling. Post more details as they come. We can fix it!

3
  • What is the connection string for MSSQL OleDB? We had that thought but we can't figure out which to use.
    – Pselus
    Mar 23, 2010 at 15:02
  • 1
    connectionstrings.com Mar 23, 2010 at 15:11
  • We've been trying to use connectionstrings.com but they aren't working. I'm not actually the one working on the connection string issue so I can't really tell you which aren't working though. Thank you for the link though!
    – Pselus
    Mar 23, 2010 at 15:13
1

Try this connection string:

<connectionStrings>
    <add name="ConnString" 
          connectionString="Data Source=IPAddress\InstanceIfNeeded;
                            Initial Catalog=DBName;
                            User ID=YourID;
                            Password=YourPWD; 
                            Max Pool Size=100; 
                            Connection Timeout=20;"
          providerName="System.Data.SqlClient"/>
</connectionStrings>

It will switch you to using the newer OleDB drivers and ensure that your Pool size and timeout are correct. Of course, you'll need to enter your data source address (IP Address or server name), the name of your database, and the login credentials. I am assuming SQL login here but you can use Windows credentials as well.

4
  • We are using classic ASP. Any idea what the connectionstring is for OleDB for classic ASP?
    – Pselus
    Mar 23, 2010 at 15:23
  • Pselus - I've never worked with classic ASP so I can't help. Didn't you say that you guys were a startup? Did you recently start a company and launch a new product using classic ASP? Just curious...
    – Mark Brittingham
    Mar 23, 2010 at 15:27
  • 1
    Try... Provider=SQLNCLI10;Server=[myServer];Database=[myDataBase];Uid=myUsername;Pwd=myPassword;
    – GrowlingDog
    Mar 23, 2010 at 15:34
  • @Mark Brittingham - No, a single guy built a product in classic ASP (he wasn't even a developer) for a friend's business. The product was good so they expanded to selling the product. Just within the last year they exploded so much that they had to officially "grow" and they hired myself and another developer. We are working at moving it to .Net but it's a huge site so we're still having growing pains.
    – Pselus
    Mar 23, 2010 at 15:44
0

This sounds like it might be a problem with the ODBC driver to me, what database system are you connecting to?

1
  • We're using SQL 2008.
    – Pselus
    Mar 23, 2010 at 15:05
0

Sounds like a job for your DBA. Is your database up and available? Are spids blocking each other and timing out? Do you have overnight maintenance jobs (backups, DBCCs, reindexes, etc) that have run long and are causing issues today?

0

Wild-ass guess: You said "you find yourself logged out..." How do you manage login/logout? Is session state involved? How much stuff goes into session state? How long have you set it to live? Normally session state problems manifest themselves as out-of-memory or random-appearing loss of session data (like a logout?) but it could send your server into fits of swapping VM. Session state is an all-too-easy way to 'remember' stuff to make stateless web access appear stateful, and it doesn't always scale well.

The bottom line is you have to get it instrumented to figure out where it is failing. Event log is probably quickest.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .