function AdjustServerID($arNode, $nodeDB) { $rs = $nodeDB->Query("show variables like 'server_id'", false, '', array("fixed_connection" => true)); if ($ar = $rs->Fetch()) { if ($ar["Value"] != $arNode["SERVER_ID"]) { $ob = new CClusterDBNode(); $ob->Update($arNode["ID"], array("SERVER_ID" => $ar["Value"])); } } }
} elseif (strlen($last_id)) { $DB->Query("\n\t\t\t\t\tUPDATE b_cluster_table\n\t\t\t\t\tSET LAST_ID = " . $last_id . "\n\t\t\t\t\t,REC_COUNT = " . $i . "\n\t\t\t\t\tWHERE ID = '" . $arTable["ID"] . "'\n\t\t\t\t", false, '', array("fixed_connection" => true)); } else { $DB->Query("\n\t\t\t\t\tDELETE FROM b_cluster_table\n\t\t\t\t\tWHERE ID = '" . $arTable["ID"] . "'\n\t\t\t\t", false, '', array("fixed_connection" => true)); } } else { if ($to_node_id > 1) { COption::SetOptionString($_REQUEST["module"], "dbnode_id", $to_node_id); } else { COption::SetOptionString($_REQUEST["module"], "dbnode_id", "N"); } COption::SetOptionString($_REQUEST["module"], "dbnode_status", 'ok'); CClusterDBNode::SetOnline($to_node_id); $ob = new CClusterDBNode(); if ($from_node_id > 1) { $ob->Update($from_node_id, array("STATUS" => "READY")); } } } while (is_array($arTable) && time() < $end_time); if (is_array($arTable)) { echo GetMessage('CLUWIZ_TABLE_PROGRESS', array("#table_name#" => $arTable["TABLE_NAME"], "#records#" => $i)); echo "<script>MoveTables(2)</script>"; } else { if ($_REQUEST["status"] == "READY") { echo GetMessage("CLUWIZ_ALL_DONE1"); } else { echo GetMessage("CLUWIZ_ALL_DONE2"); } echo '<script>EnableButton();</script>'; } }
$strFatalError = GetMessage("CLU_DBNODE_EDIT_ERROR"); } elseif ($arNode["ROLE_ID"] == "SLAVE") { $strFatalError = GetMessage("CLU_DBNODE_EDIT_ERROR"); } } if ($strFatalError) { require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; ShowError($strFatalError); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; } if ($REQUEST_METHOD == "POST" && check_bitrix_sessid()) { if ($save != "" || $apply != "") { $ob = new CClusterDBNode(); $arFields = array("ACTIVE" => $_POST["ACTIVE"], "SORT" => $_POST["SORT"], "NAME" => $_POST["NAME"], "DB_HOST" => $_POST["DB_HOST"], "DB_NAME" => $_POST["DB_NAME"], "DB_LOGIN" => $_POST["DB_LOGIN"], "DB_PASSWORD" => $_POST["DB_PASSWORD"], "DESCRIPTION" => $_POST["DESCRIPTION"]); if ($ID > 0) { $res = $ob->Update($ID, $arFields); } else { $arFields["ROLE_ID"] = "MODULE"; $arFields["STATUS"] = "READY"; $arFields["GROUP_ID"] = $group_id; $res = $ID = $ob->Add($arFields); } if ($res) { if ($apply != "") { LocalRedirect("/bitrix/admin/cluster_dbnode_edit.php?ID=" . $ID . "&lang=" . LANGUAGE_ID . "&" . $tabControl->ActiveTabParam() . '&group_id=' . $group_id); } else { LocalRedirect("/bitrix/admin/cluster_dbnode_list.php?lang=" . LANGUAGE_ID . '&group_id=' . $group_id); } } else { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("CLU_DBNODE_EDIT_SAVE_ERROR"), $e);
$arModules = CClusterDBNode::GetModules($arRes["ID"]); if ($arRes["ACTIVE"] == "Y") { if ($arRes["STATUS"] == "OFFLINE" && $uptime !== false) { CClusterDBNode::SetOnline($arRes["ID"]); $arRes["STATUS"] = "ONLINE"; } elseif ($arRes["STATUS"] == "ONLINE" && count($arModules) <= 0 && $arRes["ROLE_ID"] == "MODULE") { $ob = new CClusterDBNode(); $ob->Update($arRes["ID"], array("STATUS" => "READY")); $arRes["STATUS"] = "READY"; } elseif ($arRes["STATUS"] == "READY" && count($arModules) > 0) { $ob = new CClusterDBNode(); $ob->Update($arRes["ID"], array("STATUS" => "ONLINE")); $arRes["STATUS"] = "ONLINE"; } elseif ($arRes["STATUS"] == "READY" && $arRes["ROLE_ID"] == "MAIN") { $ob = new CClusterDBNode(); $ob->Update($arRes["ID"], array("STATUS" => "ONLINE")); $arRes["STATUS"] = "ONLINE"; } } if ($arRes["ID"] > 1) { $row->AddViewField("ID", '<a href="cluster_dbnode_edit.php?lang=' . LANGUAGE_ID . '&ID=' . $arRes["ID"] . '">' . $arRes["ID"] . '</a>'); } if ($arRes["ACTIVE"] == "Y" && $arRes["STATUS"] == "ONLINE") { $htmlFLAG = '<div class="lamp-green"></div>'; } else { $htmlFLAG = '<div class="lamp-red"></div>'; } if ($uptime === false) { $htmlFLAG .= GetMessage("CLU_DBNODE_NOCONNECTION"); } elseif ($uptime > 0) { $htmlFLAG .= GetMessage("CLU_DBNODE_UPTIME") . "<br>" . FormatDate(array("s" => "sdiff", "i" => "idiff", "H" => "Hdiff", "" => "ddiff"), time() - $uptime);