Bläddra i källkod

V2.1.1 fix bugs (#210)

* addr bug fixed.

* fix connector bugs.
Yang Shuang 1 år sedan
förälder
incheckning
a1c4f4c58b
2 ändrade filer med 7 tillägg och 3 borttagningar
  1. 3 0
      src/connector/mysql_operation.cc
  2. 4 3
      src/libs/common/config/dbconfig.cc

+ 3 - 0
src/connector/mysql_operation.cc

@@ -733,6 +733,9 @@ void ConnectorProcess::init_table_name(const DTCValue *Key, int field_type)
     }
     snprintf(DBName, sizeof(DBName), dbConfig->dbFormat, dbid);
     snprintf(table_name, sizeof(table_name), dbConfig->tblFormat, tableid);
+    log4cplus_debug("dbConfig->keyHashConfig.keyHashEnable:%d, left:%d, right:%d", dbConfig->keyHashConfig.keyHashEnable, 
+    dbConfig->keyHashConfig.keyHashLeftBegin, dbConfig->keyHashConfig.keyHashRightBegin);
+    log4cplus_debug("key hash:%lld, %d, %d, %d, %d", n, dbConfig->dbDiv, dbConfig->dbMod, dbConfig->tblDiv, dbConfig->tblMod);
     log4cplus_info("DBName:%s , table_name:%s" ,DBName , table_name);
 }
 

+ 4 - 3
src/libs/common/config/dbconfig.cc

@@ -450,8 +450,8 @@ int DbConfig::get_dtc_config(YAML::Node dtc_config, DTCConfig* raw, int i_server
             dbFormat = dbName;
         } else {
             dbDiv = 1;
-            dbMod = dtc_config["primary"][layer]["real"].size();
-
+            dbMod = dtc_config["primary"][layer]["real"][dtc_config["primary"][layer]["real"].size()-1]["db"]["last"].as<int>() - 
+                    dtc_config["primary"][layer]["real"][0]["db"]["start"].as<int>() + 1;
             if (dbMod > 100) {
                 log4cplus_error(
                     "invalid [DATABASE_CONF].DbMod = %d, mod value too large",
@@ -515,7 +515,8 @@ int DbConfig::get_dtc_config(YAML::Node dtc_config, DTCConfig* raw, int i_server
             tblMod = 1;
             tblFormat = tblName;
         } else {
-            tblDiv = dtc_config["primary"][layer]["real"].size();
+            tblDiv = dtc_config["primary"][layer]["real"][dtc_config["primary"][layer]["real"].size()-1]["db"]["last"].as<int>() - 
+                    dtc_config["primary"][layer]["real"][0]["db"]["start"].as<int>() + 1;
             tblMod = dtc_config["primary"][layer]["sharding"]["table"]["last"].as<int>() - dtc_config["primary"][layer]["sharding"]["table"]["start"].as<int>() + 1;
 
             if(tblDiv == 0 || tblMod == 0) {