Преглед на файлове

Merge pull request #1413 from wingerx/master

获取TableMeta信息时,增加一次retry操作
agapple преди 6 години
родител
ревизия
7e4912cd2e
променени са 1 файла, в които са добавени 9 реда и са изтрити 2 реда
  1. 9 2
      parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/TableMetaCache.java

+ 9 - 2
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/TableMetaCache.java

@@ -166,9 +166,16 @@ public class TableMetaCache {
             if (tableMeta == null) {
                 // 因为条件变化,可能第一次的tableMeta没取到,需要从db获取一次,并记录到snapshot中
                 String fullName = getFullName(schema, table);
+                ResultSetPacket packet = null;
+                String createDDL = null;
                 try {
-                    ResultSetPacket packet = connection.query("show create table " + fullName);
-                    String createDDL = null;
+                    try {
+                        packet = connection.query("show create table " + fullName);
+                    } catch (Exception e) {
+                        // 尝试做一次retry操作
+                        connection.reconnect();
+                        packet = connection.query("show create table " + fullName);
+                    }
                     if (packet.getFieldValues().size() > 0) {
                         createDDL = packet.getFieldValues().get(1);
                     }