【发布时间】:2011-11-10 10:12:53
【问题描述】:
如何限制连接到 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 秒。
【问题讨论】:
-
我认为Oracle 也推荐你也添加
INBOUND_CONNECT_TIMEOUT_*listener_name*(价值低于INBOUND_CONNECT_TIMEOUT)
标签: c# .net oracle database-connection connection-timeout