Board index » delphi » Question Regarding ADO Connection Pooling

Question Regarding ADO Connection Pooling


2005-05-05 08:55:36 PM
delphi231
I know this group is non-technical but I didn't get a response from the
database ADO newsgroup (if I need to post in different newsgroup, my
apologies).
I have a web app that runs on windows web server with IIS 5.0. I am using an
Oracle db and the msora provider. Our dba says that we're not using
connection pooling. I heard that ADO automatically has database connection
pooling. I have also came accross an article
(www.sqlservercentral.com/columnists/lplatt/adogotcha_printversion.as
p) that says IIS does connection pooling. Can anyone shed some light here?
Does ADO (version 2.6) do connection pooling automatically? If so, is there
some settings for maximum number of connections? Queue Length? etc?
Thanks,
Bill N
 
 

Re:Question Regarding ADO Connection Pooling

My understanding is connection pooling will get used unless you specifically
turn it off. So if you close e.g. a SQLConnection, then open a new
SQLConnection, *with exactly the same connection string* it will use the
pooled version - saving time
- Chris
"Bill N" <XXXX@XXXXX.COM>writes
Quote
I know this group is non-technical but I didn't get a response from the
database ADO newsgroup (if I need to post in different newsgroup, my
apologies).
I have a web app that runs on windows web server with IIS 5.0. I am using
an
Oracle db and the msora provider. Our dba says that we're not using
connection pooling. I heard that ADO automatically has database
connection
pooling. I have also came accross an article
(www.sqlservercentral.com/columnists/lplatt/adogotcha_printversion.as
p) that says IIS does connection pooling. Can anyone shed some light
here?
Does ADO (version 2.6) do connection pooling automatically? If so, is
there
some settings for maximum number of connections? Queue Length? etc?

Thanks,
Bill N


 

Re:Question Regarding ADO Connection Pooling

Bill N writes:
Quote
I have a web app that runs on windows web server with IIS 5.0. I'm
using an Oracle db and the msora provider. Our dba says that we're
not using connection pooling. I heard that ADO automatically has
database connection pooling.
It depends on the driver. Because the BDP drivers don't currently have
connection pooling built in, Robert Love implemented a connection
pooler for the BDP drivers we are using on BDN. it is component-based
rather than driver based, so it can pool any BDP connection.
I'll try to get more information posted on it after my APAC trip.
You'll see a supported solution for connection pooling coming from
Borland in the future.
--
John Kaster blogs.borland.com/johnk
Features and bugs: qc.borland.com
Get source: cc.borland.com
If it is not here, it is not happening: ec.borland.com
 

Re:Question Regarding ADO Connection Pooling

"Bill N" writes
Quote
I have a web app that runs on windows web server with IIS 5.0. I am using
an
Oracle db and the msora provider. Our dba says that we're not using
connection pooling.
You should ask your DBA if he can prove that. (It's easy to confirm this:
write a small loop that opens and closes the connection about 50 times. If
the number of concurrent Oracle connection is greater than 1 or 2 then you
have a problem.)
ADO does little for pooling connection resources on its own. It is in fact
the OLEDB provider that does it. In your case, it is the MSORA provider.
For it to be a legitimate provider, MSORA *has* to implement the pooling
interfaces that the OLEDB provider framework imposes. So, yes, if you use
ADO and OLEDB, pooling should happen automatically.
Quote
I've also came accross an article
(www.sqlservercentral.com/columnists/lplatt/adogotcha_printversion.as
p) that says IIS does connection pooling. Can anyone shed some light
here?
The guy is right in a way, but it sounds like IIS needs to be configured to
do so. On the contrary. OLEDB Resource pooling (connection pooling)
happens automatically in the client process space. So, if IIS is the main
process, you will see the benefits of resource pooling within *that* IIS
process. If you have your own Delphi executable that uses ADO, then you
will automatically get connection pooling within your exe process.
Quote
Does ADO (version 2.6) do connection pooling automatically?
Technically no, but since you are using an OLEDB provider, the answer is
yes.
Quote
If so, is there
some settings for maximum number of connections? Queue Length? etc?
Yes there are. You can play around with these settings in the connection
string. (Create a UDL file and investigate.) There are provider specific
settings too. If you set the following at the end of your connection string
"OLEDB SERVICES=-4", you actually switch off connection pooling. So make
sure that entry isn't there!
It is interesting to note that the Java community behaves differently where
they *expect* the process spaces such as (web) application servers to
configure pooling. In fact, JDBC does no pooling at all and neither do the
specific providers. Pooling happens in the application server spaces.
(Maybe your DBA is confusing this issues??? Just guessing.)
HTH
 

Re:Question Regarding ADO Connection Pooling

Abdullah Kauchali writes:
Quote
ADO does little for pooling connection resources on its own. It is in fact
the OLEDB provider that does it. In your case, it is the MSORA provider.
For it to be a legitimate provider, MSORA *has* to implement the pooling
interfaces that the OLEDB provider framework imposes. So, yes, if you use
ADO and OLEDB, pooling should happen automatically.
There is an OLE DB provider from Oracle:
If properly installed, you should find this file: ORAOLEDB.dll
 

Re:Question Regarding ADO Connection Pooling

Satya writes:
Quote
There is an OLE DB provider from Oracle:
If properly installed, you should find this file: ORAOLEDB.dll
That is true.