从.NET 3.5平台连接到ORACLE数据库的问题

时间:2012-05-02 12:57:31

标签: .net oracle connectivity

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

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

1 个答案:

答案 0 :(得分:1)

我看到的唯一一个使用适用于.NET / ODP.NET的Oracle数据提供程序指定超时的connectionstring选项如下:

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属性定义了在需要更多连接时由连接池服务创建的新连接数。

当连接关闭时,连接池服务确定连接生存期是否已超过Connection Lifetime属性的值。如果是,则关闭连接;否则,连接将返回连接池。

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

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

在本网站上查看有关oracle命令Timeout的讨论 https://forums.oracle.com/forums/thread.jspa?threadID=317603