0

我们目前在配置为 Windows 服务的 VB .Net 应用程序之一中使用 Oracle Data Connect dll。我们使用的 .Net 版本是 Framework 3.5,我们连接到 Oracle 10g。

该应用程序不断地与数据库建立连接并立即关闭该特定实例中的每个连接(数据库连接涉及一种单例设计模式)。我们更频繁地收到关于数据库连接的错误(“<strong>CONNECTION LOST CONTACT”)。在阅读了一些博客之后,我们在连接字符串中添加了一个参数为VALIDATE CONNECTION=TRUE。此错误已解决,但我们现在收到一条新错误消息“<strong>连接请求超时”</strong>

4

1 回答 1

1

我看到的唯一一个使用Oracle Data Provider for .NET / ODP.NET指定超时的连接字符串选项如下:

Data Source=myOracle;User Id=myUsername;Password=myPassword;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;

您可以在这里获得更多示例:http: //www.connectionstrings.com/oracle#p12

这是描述:

默认情况下,启用连接池。这个控制池化机制。连接池服务通过使用 ConnectionString 属性来唯一标识一个池来创建连接池。

打开的第一个连接创建连接池。该服务最初创建由 Min Pool Size 参数定义的连接数。

Incr Pool Size 属性定义了在需要更多连接时连接池服务要创建的新连接数。

当连接关闭时,连接池服务会判断连接的生命周期是否超过了连接生命周期属性的值。如果是,则关闭连接;否则,连接将返回连接池。

连接池服务每 3 分钟关闭一次未使用的连接。Decr 池大小属性指定每 3 分钟可以关闭的最大连接数。

此外,您可以查看运行查询的 OracleCommand 是否超时。查找有关 OracleCommand.CommandTimeout 属性的文档。

在此站点上查看有关 oracle 命令超时的讨论 https://forums.oracle.com/forums/thread.jspa?threadID=317603

于 2012-05-02T13:04:58.930 回答