From 75d4d18c74f549bd869ffe0d11c88a8606e42b16 Mon Sep 17 00:00:00 2001 From: zyyang Date: Wed, 18 Nov 2020 18:04:26 +0800 Subject: [PATCH 1/5] [TD-1590]: a test case for JDBC failover --- .../com/taosdata/jdbc/cases/FailOverTest.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java new file mode 100644 index 0000000000..aa0f3946fd --- /dev/null +++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java @@ -0,0 +1,53 @@ +package com.taosdata.jdbc.cases; + +import com.taosdata.jdbc.lib.TSDBCommon; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +public class FailOverTest { + + private Connection conn; + private static final String host = "localhost"; + + @Before + public void before() { + try { + Class.forName("com.taosdata.jdbc.TSDBDriver"); + conn = TSDBCommon.getConn(host); + TSDBCommon.createDatabase(conn, "failover_test"); + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + } + + @Test + public void testFailOver() { + try (Statement stmt = conn.createStatement()) { + ResultSet resultSet = stmt.executeQuery("select server_status()"); + while (true) { + resultSet.next(); + int status = resultSet.getInt("server_status()"); + System.out.println(">>>>>>>>> status : " + status); + } + } catch (SQLException e) { + e.printStackTrace(); + } + + } + + @After + public void after() { + try { + if (conn != null) + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } +} From 88232e2e35a25ee9d9a61d71cbeb9294ae2c4d0b Mon Sep 17 00:00:00 2001 From: zyyang Date: Wed, 18 Nov 2020 18:05:50 +0800 Subject: [PATCH 2/5] change --- .../test/java/com/taosdata/jdbc/cases/FailOverTest.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java index aa0f3946fd..eab7ba3ea7 100644 --- a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java +++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java @@ -5,21 +5,18 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; +import java.sql.*; public class FailOverTest { private Connection conn; - private static final String host = "localhost"; @Before public void before() { try { Class.forName("com.taosdata.jdbc.TSDBDriver"); - conn = TSDBCommon.getConn(host); + final String url = "jdbc:TAOS://:/?user=root&password=taosdata"; + conn = DriverManager.getConnection(url); TSDBCommon.createDatabase(conn, "failover_test"); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); From 7be93e19085a0c42376d59ad86d2961d8741e15a Mon Sep 17 00:00:00 2001 From: zyyang Date: Wed, 18 Nov 2020 18:16:48 +0800 Subject: [PATCH 3/5] change --- .../com/taosdata/jdbc/cases/FailOverTest.java | 47 +++++++------------ 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java index eab7ba3ea7..dd223777d9 100644 --- a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java +++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java @@ -1,50 +1,37 @@ package com.taosdata.jdbc.cases; -import com.taosdata.jdbc.lib.TSDBCommon; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.sql.*; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.concurrent.TimeUnit; public class FailOverTest { - private Connection conn; - - @Before - public void before() { - try { - Class.forName("com.taosdata.jdbc.TSDBDriver"); - final String url = "jdbc:TAOS://:/?user=root&password=taosdata"; - conn = DriverManager.getConnection(url); - TSDBCommon.createDatabase(conn, "failover_test"); - } catch (ClassNotFoundException | SQLException e) { - e.printStackTrace(); - } - } + private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); @Test - public void testFailOver() { - try (Statement stmt = conn.createStatement()) { - ResultSet resultSet = stmt.executeQuery("select server_status()"); - while (true) { + public void testFailOver() throws ClassNotFoundException { + Class.forName("com.taosdata.jdbc.TSDBDriver"); + final String url = "jdbc:TAOS://:/?user=root&password=taosdata"; + + while (true) { + try (Connection conn = DriverManager.getConnection(url)) { + Statement stmt = conn.createStatement(); + ResultSet resultSet = stmt.executeQuery("select server_status()"); resultSet.next(); int status = resultSet.getInt("server_status()"); - System.out.println(">>>>>>>>> status : " + status); + System.out.println(">>>>>>>>>" + sdf.format(new Date()) + " status : " + status); + stmt.close(); + TimeUnit.SECONDS.sleep(5); + } catch (SQLException | InterruptedException e) { + e.printStackTrace(); } - } catch (SQLException e) { - e.printStackTrace(); } } - @After - public void after() { - try { - if (conn != null) - conn.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - } } From 38459ed3546624bfcce7ca010da558bd48089b6a Mon Sep 17 00:00:00 2001 From: zyyang Date: Thu, 19 Nov 2020 09:46:30 +0800 Subject: [PATCH 4/5] change --- .../src/test/java/com/taosdata/jdbc/BaseTest.java | 12 ++++++------ .../java/com/taosdata/jdbc/cases/FailOverTest.java | 2 -- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/BaseTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/BaseTest.java index b793a47c99..ce3735c128 100644 --- a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/BaseTest.java +++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/BaseTest.java @@ -5,24 +5,24 @@ import com.taosdata.jdbc.utils.TDNodes; import org.junit.AfterClass; import org.junit.BeforeClass; -public class BaseTest { +public abstract class BaseTest { - private static boolean testCluster = false; + private static boolean testCluster = false; private static TDNodes nodes = new TDNodes(); - + @BeforeClass public static void setupEnv() { - try{ + try { if (nodes.getTDNode(1).getTaosdPid() != null) { System.out.println("Kill taosd before running JDBC test"); nodes.getTDNode(1).setRunning(1); nodes.stop(1); } - nodes.setTestCluster(testCluster); + nodes.setTestCluster(testCluster); nodes.deploy(1); nodes.start(1); } catch (Exception e) { - e.printStackTrace(); + e.printStackTrace(); } } diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java index dd223777d9..2a803e0f19 100644 --- a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java +++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java @@ -1,7 +1,5 @@ package com.taosdata.jdbc.cases; -import org.junit.After; -import org.junit.Before; import org.junit.Test; import java.sql.*; From ad5474d8aaf84ded6a6d5b23a8a205e1ad2a84bd Mon Sep 17 00:00:00 2001 From: zyyang Date: Thu, 19 Nov 2020 10:49:01 +0800 Subject: [PATCH 5/5] change --- .../src/test/java/com/taosdata/jdbc/cases/FailOverTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java index 2a803e0f19..83295df527 100644 --- a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java +++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/FailOverTest.java @@ -16,7 +16,8 @@ public class FailOverTest { Class.forName("com.taosdata.jdbc.TSDBDriver"); final String url = "jdbc:TAOS://:/?user=root&password=taosdata"; - while (true) { + long end = System.currentTimeMillis() + 1000 * 60 * 5; + while (System.currentTimeMillis() < end) { try (Connection conn = DriverManager.getConnection(url)) { Statement stmt = conn.createStatement(); ResultSet resultSet = stmt.executeQuery("select server_status()");