工作超時當連接到一個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)文檔。

這篇文章有用嗎?