具有相同连接字符串的C#多个应用程序实例 - 已达到最大池大小

时间:2016-10-13 13:41:42

标签: c# connection-string max-pool-size

  1. 有一个类库,它描述了一个名为ServerTools的类,它创建了一个与数据库的连接,连接字符串是硬编码的(不是我的代码),池大小= 10.

  2. 我的应用程序创建一个ServerTools实例,并使用canonized Parallel.Foreach来查询db。我使用信号量控制连接资源。 (P.FE循环根据用户输入运行,因此我无法预测TPL将创建多少线程,这就是我使用信号量控制数据库连接的原因,而不是通过限制创建的线程数量)。

  3. 由于无关的原因,我需要运行我的应用程序的3个实例。

  4. 所以最终,我有3个应用程序实例,使用30个连接到数据库。

    当我从不同的机器运行这些实例时,一切正常。

    当我从同一台机器运行这些实例时,虽然这些实例不同,但我收到错误消息:

    "从池中获取连接之前经过的超时时间。这可能是因为所有池化连接都在使用中并且达到了最大池大小。"

    所以我的问题是: 是否按IP配置连接池?我以为每个实例都会配置它。 除了使用不同的机器运行我的实例之外还有其他工作吗?如果进行了一些代码更改,以便每个ServerTools实例都有一个不同的连接字符串,通过对连接字符串进行微小的更改,使连接字符串不完全相同,它会起作用吗?

    谢谢!

0 个答案:

没有答案