Repository: hive Updated Branches: refs/heads/master d4c1fdcf2 -> e7a175663
HIVE-12481: Occasionally "Request is a replay" will be thrown from HS2 (Reviewed by Yongzhi Chen) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/e7a17566 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/e7a17566 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/e7a17566 Branch: refs/heads/master Commit: e7a17566314595578ae85a578d8abace4102b6d7 Parents: d4c1fdc Author: Aihua Xu <aihu...@apache.org> Authored: Wed Mar 2 17:28:26 2016 -0500 Committer: Aihua Xu <aihu...@apache.org> Committed: Mon Mar 14 16:19:50 2016 -0400 ---------------------------------------------------------------------- .../org/apache/hive/jdbc/HiveConnection.java | 19 +++++++++++++++++-- jdbc/src/java/org/apache/hive/jdbc/Utils.java | 4 ++++ 2 files changed, 21 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/e7a17566/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java ---------------------------------------------------------------------- diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java b/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java index 873f421..352744f 100644 --- a/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java +++ b/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java @@ -63,6 +63,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; import javax.security.sasl.Sasl; import javax.security.sasl.SaslException; + import java.io.FileInputStream; import java.io.IOException; import java.lang.reflect.InvocationHandler; @@ -176,6 +177,13 @@ public class HiveConnection implements java.sql.Connection { } private void openTransport() throws SQLException { + int numRetries = 0; + int maxRetries = 1; + try { + maxRetries = Integer.parseInt(sessConfMap.get(JdbcConnectionParams.RETRIES)); + } catch(NumberFormatException e) { + } + while (true) { try { assumeSubject = @@ -208,8 +216,15 @@ public class HiveConnection implements java.sql.Connection { } else { LOG.info("Transport Used for JDBC connection: " + sessConfMap.get(JdbcConnectionParams.TRANSPORT_MODE)); - throw new SQLException("Could not open client transport with JDBC Uri: " + jdbcUriString - + ": " + e.getMessage(), " 08S01", e); + + // Retry maxRetries times + String errMsg = "Could not open client transport with JDBC Uri: " + + jdbcUriString + ": " + e.getMessage(); + if (++numRetries >= maxRetries) { + throw new SQLException(errMsg, " 08S01", e); + } else { + LOG.warn(errMsg + " Retrying " + numRetries + " of " + maxRetries); + } } } } http://git-wip-us.apache.org/repos/asf/hive/blob/e7a17566/jdbc/src/java/org/apache/hive/jdbc/Utils.java ---------------------------------------------------------------------- diff --git a/jdbc/src/java/org/apache/hive/jdbc/Utils.java b/jdbc/src/java/org/apache/hive/jdbc/Utils.java index 080e8fc..754f89f 100644 --- a/jdbc/src/java/org/apache/hive/jdbc/Utils.java +++ b/jdbc/src/java/org/apache/hive/jdbc/Utils.java @@ -72,6 +72,10 @@ class Utils { // client side params are specified in sess_var_list // Client param names: + + // Retry setting + static final String RETRIES = "retries"; + static final String AUTH_TYPE = "auth"; // We're deprecating this variable's name. static final String AUTH_QOP_DEPRECATED = "sasl.qop";