Browse Source

V2.1.1 fix bugs (#211)

* addr bug fixed.

* fix connector bugs.

* fix dbMod/tbDiv bug.
Yang Shuang 1 năm trước cách đây
mục cha
commit
bc7475fae9
1 tập tin đã thay đổi với 18 bổ sung2 xóa
  1. 18 2
      src/libs/common/config/dbconfig.cc

+ 18 - 2
src/libs/common/config/dbconfig.cc

@@ -450,8 +450,16 @@ 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"][dtc_config["primary"][layer]["real"].size()-1]["db"]["last"].as<int>() - 
+            if(dtc_config["primary"][layer]["real"][0]["db"].IsScalar())
+            {
+                dbMod = 1;
+            }
+            else
+            {
+                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,8 +523,16 @@ 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"][dtc_config["primary"][layer]["real"].size()-1]["db"]["last"].as<int>() - 
+            if(dtc_config["primary"][layer]["real"][0]["db"].IsScalar())
+            {
+                tblDiv = 1;
+            }
+            else
+            {
+                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) {