如何限制连接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秒。
答案 0 :(得分:0)
我从未使用过Devart的dotConnect库,但是查看OracleConnection
类似乎可以通过调用OracleConnection.Close()
在一段时间后关闭连接。当您尝试Open
连接时,这会让您退出阻止状态。
这与设置超时不完全相同,但它可能有效。此外,在调试此代码时检查ConnectionTimeout
属性,以确认超时已正确设置。
答案 1 :(得分:0)
OracleConnection.ConnectionTimeout
仅适用于直接模式。通过Oracle客户端建立连接时会忽略它,在这种情况下,Oracle客户端管理连接。