增加 python cx_Oracle 连接到慢速数据库的连接超时前的时间

Increase time before connection timout on python cx_Oracle connection to slow database

我在 python 中使用标准的 cx_Oracle.connect() 语句,就像这样

cnxn = cx_Oracle.connect(user/pwd@connection:port/service)

我收到了这个错误

DatabaseError: ORA-12170: TNS:Connect timeout occurred

我想是因为我们刚切换到一个amazon/aws/rds数据库,这个数据库很慢,而且连接超时太快了。有没有一种简单的方法可以增加超时发生前的等待时间?

到目前为止,我尝试了这些解决方案但没有成功。

cx_Oracle Connection Timeout

https://github.com/oracle/python-cx_Oracle/issues/277

您可能没有 cx_oracle 超时,而是您的 oracle 客户端

您可以call_timeout,但通常用于初始连接后的请求。

您可以按如下方式更新 sqlnet.ora 文件

SQLNET.INBOUND_CONNECT_TIMEOUT = 0

Similar so question

cx_oralce Docs

如果您使用的是 Oracle Client 19c 或更高版本,则可以向 Easy Connect 字符串添加连接超时。见 Oracle Database 21c Easy Connect Plus:

cnxn = cx_Oracle.connect(user/pwd@connection:port/service?transport_connect_timeout=15)

还有一个 connect_timeout 选项,请参阅上面的技术简介 link 了解不同之处。