工作超时当连接到一个JDBC SQL端点

增加SocketTimeout价值JDBC连接URL来阻止线程请求超时。

写的Atanu.Sarkar

去年发表在:2023年1月20日

问题

你有一份工作,阅读和写作是一个SQL端点通过一个JDBC连接。

SQL仓库无法执行的工作,你会得到一个java.net.SocketTimeoutException:读超时错误消息。

2022/02/04 17:36:15——TI_stg_trade。0- Caused by: com.simba.spark.jdbc42.internal.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out 2022/02/04 17:36:15 - TI_stg_trade.0 - at com.simba.spark.hivecommon.api.TETHttpClient.flushUsingHttpClient(Unknown Source) 2022/02/04 17:36:15 - TI_stg_trade.0 - at com.simba.spark.hivecommon.api.TETHttpClient.flush(Unknown Source) 2022/02/04 17:36:15 - TI_stg_trade.0 - at com.simba.spark.jdbc42.internal.apache.thrift.TServiceClient.sendBase(TServiceClient.java:73) 2022/02/04 17:36:15 - TI_stg_trade.0 - at com.simba.spark.jdbc42.internal.apache.thrift.TServiceClient.sendBase(TServiceClient.java:62)

导致

每个传入请求需要一个线程请求的持续时间。当同时发生的请求的数量大于可用的线程的数量,会发生超时。这可能发生在长时间运行的查询。

解决方案

增加了SocketTimeout价值的JDBC连接URL。

在这个例子中,SocketTimeout设置为300秒:

jdbc:火花:/ / <服务器主机>:443;HttpPath = < http-path >;运输方式= http; SSL = 1(;财产=价值[;财产=价值]];SocketTimeout = 300


有关更多信息,审查建筑遗产的连接URL火花司机(AWS|Azure|GCP)文档。

这篇文章有用吗?