【问题标题】:Problems with connecting to ORACLE database from .NET 3.5 platform从 .NET 3.5 平台连接到 ORACLE 数据库的问题
【发布时间】:2012-05-02 12:57:30
【问题描述】:

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

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

【问题讨论】:

    标签: .net oracle connectivity


    【解决方案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 Pool Size 属性指定每 3 分钟可以关闭的最大连接数。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-18
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 2010-11-18
      相关资源
      最近更新 更多