ADO.NET - 并发连接和最大池大小。超时错误

时间:2011-01-24 15:20:01

标签: c# multithreading sockets connection-string database-connection

我有以下情况:

  • 通过以这种方式设置套接字选项,我将TCP / IP连接到100多个系统(以便在线程死亡时关闭所有数据库连接) SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.KeepAlive,true);

  • 每个线程都与数据库建立连接

  • 从单个线程向数据库发出的每个查询都会打开并关闭与数据库的连接。

  • 我的连接字符串如下所示: 数据来源= xxx;初始目录= xxx;用户ID = xxx,密码= xxx;连接超时= 0;最大池大小= 300; Pooling = True

我的问题如下,每5/10分钟我得到以下消息类型:

  

超时已过期。超时期限   在获得a之前已经过去了   从游泳池连接。这个   发生了五月因为都是   池中使用的连接和最大池   已达到规模。

我的问题是:

  1. 如何避免此错误?
  2. 连接字符串的设置是否正确?
  3. 如何在套接字上使用更强大的Keepalive(如果设置不正确)?
  4. 感谢您的一切。

0 个答案:

没有答案