List:MySQL on Win32« Previous MessageNext Message »
From:Peter Carter Date:March 24 1999 12:06am
Subject:Re: Down
View as plain text  
At 07:01 PM 3/23/99 +0200, you wrote:
>>>>>> "Peter" == Peter Carter <peterc@stripped> writes:
>Peter> So what happened yesterday?
>>> From the application log.....
>Peter> An object call caused an exception.       (IID:
>Peter> {208B3651-2B48-11CF-BE10-00AA00A2FA25}) (Method: 7)  (Microsoft
>Peter> Server Internals Information: File:
>Peter> Line: 220) (Exception: C0000005) (Address: 0x02d6dc66) 
>Peter> myodbc!SQLTransact + 0x2BE6
>Peter> myodbc!SQLDisconnect + 0x30
>Peter> ODBC32!VRetrieveDriverErrorsRowCol + 0x2EE1
>Peter> MtxDm!DispManGetContext(unsigned long *,unsigned long *) + 0x21F9
>Peter> What I did was enable a timeout in the ODBC menu for MYODBC. In short
>Peter> don't. This dropped my IIS (and ALL of it's www sites) which uses
>Peter> transation server for everyting (even if you do not) and dropped my
>Peter> pcanywhere. This prevented me from fixing it.
>What timeout entry ?
>Note that MyODBC 2.50.21 and before had a bug when using automatic reconnect
>to an 3.21 server.  This has been fixed in MyODBC 2.50.22.
>Peter> The problem has been corrected and I go merrily along...... ;)
I am running 3.22... but... don't need much of an excuse.... ;)

The time-out value is contained in the odbc manager (the one that ships
with ado 2.x) under connection pooling. If no value is set for the odbc
driver, it is not pooled or re-used. If set, the driver re-uses the
connection for another object with a similar connect. If the specified time
runs out, it disconnects the odbc connection while letting the program
think it is open, reconnecting if the object needs to use it again. This is
where it barfed.

What it is tring to prevent is the following example of my site....

Each session has 6 db ActiveX classes associated with each user session.
IIS locks the dll as 'allways loaded' and throws one up for spare to
improve speed, for the next www connection. This means, with only 1 access,
there are 12 open streams to my db server. Now, for each db module I need
to write or read from, a seperate connect is required to fetch and update

so.... for 5 simutanious users.....

6 connects in standby
5 * 6 connects for db control
5 * 2  * 6 for write and read channels (worst case)

Worst case is 96 db connections on a not-so-busy site. Connection pooling
becomes an atractive option... ;)

This is , ofcourse, using the standard rdo/ado programming model. Most WWW
designers do not realize this and cannot figure why ther db servers use up
their licences fast. Thank-you Microsoft.......

On the lighter side, MySql is FAST on connects and you can set a rather
high value of connections to compensate. In this role it is easily twice as
fast as SqlServer even when using connection pooling.

Reality: The most I have seen racked up on my system is about 40 doing some
torture testing.

Peter B. Carter (peterc@stripped)
Home: 613-562-1176
Pager: 613-751-4660

DownPeter Carter23 Mar
  • DownMichael Widenius23 Mar
    • Re: DownPeter Carter24 Mar