From: Peter Carter Date: March 24 1999 12:06am Subject: Re: Down List-Archive: http://lists.mysql.com/win32/40 Message-Id: <3.0.1.32.19990323190653.009de140@gorf.pbc.ottawa.on.ca> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" At 07:01 PM 3/23/99 +0200, you wrote: > >Hi! > >>>>>> "Peter" == Peter Carter 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 Transaction >Peter> Server Internals Information: File: d:\viper\src\resdisp\mtxdm\cholder.cpp, >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...... ;) > >Regards, >Monty > 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 data. 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