0

如何限制连接到 Oracle 数据库的超时?我在数据访问层使用 devart dotConnect Express Edition。我尝试添加Connection timeout=30;到连接字符串,但它没有给出正确的结果(甚至有点奇怪,第一次它真的限制为 30 秒,但不是所有连接尝试)。然后我发现

连接超时 尝试建立连接时在终止尝试并生成错误之前等待的时间(以秒为单位)。值 0 表示没有限制。默认值为 15 秒。仅在直接模式下可用。

来自德瓦特网站

我不能使用直接模式,因为我使用的是 Express Edition。然后我尝试在TNSNAMES.ORA

DB1 =
  (DESCRIPTION =
    (CONNECT_TIMEOUT=11)
    (TRANSPORT_CONNECT_TIMEOUT=10)
    (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.100.8)(PORT = 1521)
       )
    )
    (CONNECT_DATA =
       (SERVICE_NAME = DB1)
    )
  )

仍然工作不正确。好的,下楼并尝试设置连接超时SQLNET.ORA

SQLNET.INBOUND_CONNECT_TIMEOUT = 5

又一个失败!有谁知道如何设置超时限制允许连接到 DB1 的时间?它现在完成连接(连接失败)大约 20 秒。

4

2 回答 2

0

我从来没有使用过 Devart 的 dotConnect 库,但是看看这个OracleConnection类,你似乎应该能够在一段时间后通过调用来关闭连接OracleConnection.Close()。当您尝试Open连接时,这应该会让您脱离阻塞状态。

这与设置超时不完全一样,但它可能会起作用。此外,ConnectionTimeout在调试此代码时检查属性,以确认超时设置正确。

于 2011-11-10T21:16:50.653 回答
0

OracleConnection.ConnectionTimeout仅在直接模式下工作。当通过 Oracle 客户端建立连接时忽略它,在这种情况下管理连接。

于 2011-11-11T13:09:19.037 回答