Ah, if you start another application (like a maintenance tool), it should be
able to gain access via its own connection (and pool). If your application
is using all of the available connections on the server, you need to
redesign it... it shouldn't. Your application should be built to open and
close connections as quickly as possible--unless you're intentionally trying
to build persistent server-side cursors or manage server state from the
client. I certainly hope this is not a web application (in which case you're
... well, in for other issues). The CPTimeout default is 60 seconds. I
probably would not tinker with that number. Another approach would be to
disable pooling entirely. I would also make sure that you have ODBC 3.0 SP1
installed (at least). See
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q169470 for details.
If your pools are full, I would suspect that you're not closing connections
properly--as when an exception occurs.
I'm also troubled by your approach on several levels but I think it would
take quite a bit of explaining before I could see a rational reason to
configure the application and pool as you have done.
Frankly, I'm more familiar with SQL Server (the Microsoft flavor) OLE DB and
SqlClient connection pooling. With ADO.NET 2.0 you have far more interactive
control over the pools.
hth
--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
www.betav.com/blog/billva
www.betav.com
www.sqlreportingservices.net
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
Post by KhodrHi Bill, Thanks for your time.
The following is my story and the reason why we need to clear the pooled
1) we connect to Sybase database using ODBC
2) we use Connection Pooling, with timeout of around one hour (we have our
reason for that)
Everyday around 8pm there is some maintenance work on Syabse database
(Backup, etc..) that will last around 10 minutes. Any attempt to connect to
the database at that time will obviuosly fail, and the pool will keep the
bad connection for the remaining one hour. Any attempt to connect, even
after the 10 minute maintenance, will continue to fail till after one hour
(CPTimeout). That's because the Coonection Pooling is holding the bad
connection. So we need to "flush" and "clear" the pooled connections when an
attempt to connect fails, so that any new attempts will not fail.
Any ideas will be highly appreciated.
Again, thanks for your time.
Using VB6
Khodr
Post by William (Bill) VaughnThe connection pool is owned by your process. When your process ends, the
pool is destroyed--or it should be.
In ADO.NET (yes, you're using VB6 so this does not apply) you have a
couple
Post by William (Bill) Vaughnof new method calls that can flush the pool.
hth
--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
www.betav.com/blog/billva
www.betav.com
www.sqlreportingservices.net
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no
rights.
Post by William (Bill) Vaughn__________________________________
Post by KhodrHi Everyone,
I am using VB6 and Oracle ODBC driver.
I want to clear out the existing connections "immediately" without rebooting
the machine and without waiting for the CPTimeout to expire. (N.B.
setting
Post by William (Bill) VaughnPost by Khodrthe CPTimeout to zero in the registry does not take effect right away
without rebooting. Also disabling connection pooling using the ODBC
Administrator does NOT clear the existing connections immediately
without
Post by William (Bill) VaughnPost by Khodrrebooting)...
Any help will be highly appreciated.
Thanks
Khodr