on 2014 Feb 18 3:09 AM
Hello,
i have a problem with my connection-pooling in my sa-12 server. In my programm is often open and close connections (for nearly every query). After a while, i get the error message that the maximum of poolsize is reached. if i take a look in Sybase Central, there are a lot of Connections with the type: "CONNECTPOOLCACHE".
If i add CPOOL=No to my connection-string, nothing changed. There are also a lot of connections.
Does anybody else had this problem and got a solution?
Thank you!
Request clarification before answering.
What API are you using? I'm asking since the .NET Data Provider does its own connection pooling (client-side) by default and does not use the SQL Anywhere connection pooling facility which can be used via the CPOOL connection parameter.
Note: Both ways of connection pooling allow to specify the maximum amount of pooled connections, cf. "Max Pool Size=" for .NET and the "MaxCached=" modifier for the CPOOL parameter.
So what kind of connection pooling do you use?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Setting POOLING=FALSE does not tell you whether you have unique connection strings. For example, these two connection strings create 2 pools because the string is not identical.
UID=user1;PWD=user1;Max Pool Size=5;Pooling=true;ConnectionName=POOL 1
UID=user1;PWD=user1;Max Pool Size=5;Pooling=true;ConnectionName=POOL 2
So the rules for connection pooling are different for .NET pooling and SQL Anywhere pooling? - I'm asking as for the latter, a difference in CON name only is said to allow a connection to be re-used. To cite the 12.0.1 docs:
The connection name can be unique each time, but all other connection parameters must be identical for a cached connection to be reused.
If your message says this: Timeout expired. The timeout period elapsed before obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
If your pool size is 3, then you have attempted to open a 4th connection using the same connection string while the other 3 connections were still in use.
What is your Connect Timeout/Connection Timeout? The default is 15 seconds and the maximum is 60 seconds.
There are three things you could do.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
64 | |
8 | |
7 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.