Friday, February 24, 2012

client/server ODBC problem

I have an application on:

W2K client
Sql 2000 + No SP
MS ODBC V3.8
C++

The application, running on the client, connects to SQL server for many simultaneous queries involving select, insert and update. Application creats a thread for each query. Each thread connects to the sql server via ODBC using sqlconnect.

However I find that the individual thread do not close properly and stay open even after sqldisconnect has been issued on the client. At one point I have over 1200 threads on client application trying simultaneously to connect to the server and the sqlserver is holding with 276 threads open.

I do not understand why the ODBC connection stays open even after sqldisconnect is issued. I have even tried disabling connection pooling, to no effect. The performance is very poor.

How can I issue a large number of queries to same sql server via ODBC while guaranteeing performance?Enable connection pooling... What you are fighting (the pooling) is almost certainly exactly what you need. It will drastically reduce the number of connections (spids) used by your application, as well as reducing the latency and memory usage of your client application.

-PatP|||Enable connection pooling... What you are fighting (the pooling) is almost certainly exactly what you need. It will drastically reduce the number of connections (spids) used by your application, as well as reducing the latency and memory usage of your client application.

-PatP
Hi Pat,
Have you come across this problem before ?
Are you aware of a solution that I can implement to get round this problem?
I would greatly appreciate your input.
Best Regards,

Frank.

No comments:

Post a Comment