Oracle SQLcl v19执行脚本连接超时设置无效问题与解决办法
Oracle SQLcl 19.1.0.0 连接超时配置方案
环境与原有可执行命令
使用Oracle SQLDeveloper Command-Line (SQLcl) 版本19.1.0.0,以下脚本可正常运行:
echo @test/oracle_sql_cl/read_schema.sql | sql -S ${USER}/${PASSWORD}@${TNS_NAME}
失败的尝试
为添加连接超时参数,先后尝试两种方式均未达到预期效果:
- 在
sql命令中直接使用-t参数设置超时,执行失败:
echo @test/oracle_sql_cl/read_schema.sql | sql -S -t 5 ${USER}/${PASSWORD}@${TNS_NAME}
- 在TNS连接串中同时配置
TRANSPORT_CONNECT_TIMEOUT、CONNECT_TIMEOUT及重试相关参数,连接仍会重试:
export TNS_NAME="(DESCRIPTION=(TRANSPORT_CONNECT_TIMEOUT=5)(CONNECT_TIMEOUT=5)(RETRY_COUNT=1)(RETRY_DELAY=1)(ADDRESS_LIST=(ADDRESS=...
最终有效解决方案
更新TNS连接串,仅配置TRANSPORT_CONNECT_TIMEOUT参数(示例设置为2秒),继续使用原有调用命令即可解决连接重试问题:
export TNS_NAME="(DESCRIPTION=(TRANSPORT_CONNECT_TIMEOUT=2)...
内容的提问来源于stack exchange,提问作者Theo Sweeny
相关产品推荐
相关产品推荐

