When using the .net data provider one can use connection pooling and provide also a max number of pooled connections. But how to define a timeout for the pooled connections (Version is 11.0.1.2506) Scenario is: at start the application is using 20 connections, but 10 of these will never be reused. My observation is, that these 10 are kept open nevertheless as long as the application runs. Does any setting exsist to limit the life time of an inactive connection in the pool, or have I been just not patient enough to see the timeout? |
Check out -ti and Idle: http://dcx.sybase.com/index.html#1101en/dbadmin_en11/ti-database-dbengine.html and http://dcx.sybase.com/index.html#1101en/dbadmin_en11/idle-connection-conparm.html Note that the -ti (idle timeout) and tl (liveness timeout) do determine when the server and/or client will automatically drop the connection but in this case it would be better to use Minghai's suggestion of using .Net's connection parameter 'connection lifetime' to tell .Net to drop idle connections. Doing so will ensure that the connections are closed 'nicely' rather than having the connections dropped from underneath .Net's feet (so-to-speak). |
You should use the 'connection lifetime' parameter which specifies how long the connection will stay in the pool ( in seconds ).The default is 0 which means the connection will stay forever. The only time the provider checks the lifetime of a connection is when the connection is closed. Does that affect how long SQL Anywhere keeps the underlying database connection open? Somehow, I think not: http://blogs.msdn.com/b/angelsb/archive/2004/09/20/231963.aspx |
Check out -ti and Idle: http://dcx.sybase.com/index.html#1101en/dbadmin_en11/ti-database-dbengine.html and http://dcx.sybase.com/index.html#1101en/dbadmin_en11/idle-connection-conparm.html Are you testing with dbeng11 and shared memory connections?
Idle connection parameter is helping and -ti server parameter is helping too. Breck you should change your comment to become an answer, so that I can accept it.
OK... I need points for more bounties :)