function SlaveNodeCommon($nodeDB)
{
$result = array();
global $DB;
$main_character_set_server = $this->GetServerVariable($DB, "character_set_server");
$main_collation_server = $this->GetServerVariable($DB, "collation_server");
$arCharset = $this->GetServerVariables($nodeDB, array(
"character_set_server" => "",
"character_set_database" => "",
"character_set_connection" => "",
"character_set_client" => "",
), 'character_set%');
$arCollation = $this->GetServerVariables($nodeDB, array(
"collation_server" => "",
"collation_database" => "",
"collation_connection" => "",
), 'collation%');
$is_ok = $main_character_set_server === $arCharset["character_set_server"]
&& $main_collation_server === $arCollation["collation_server"]
;
$result["master_charset"] = array(
"IS_OK" => $is_ok? CClusterDBNodeCheck::OK: CClusterDBNodeCheck::ERROR,
"MESSAGE" => GetMessage("CLU_MASTER_CHARSET_MSG"),
"WIZ_REC" => GetMessage("CLU_MASTER_CHARSET_WIZREC", array(
"#character_set_server#" => $arCharset["character_set_server"],
"#collation_server#" => $arCollation["collation_server"],
)),
);
$is_ok = $arCharset["character_set_server"] !== ""
&& $arCharset["character_set_server"] === $arCharset["character_set_database"]
&& $arCharset["character_set_database"] === $arCharset["character_set_connection"]
&& $arCharset["character_set_connection"] === $arCharset["character_set_client"]
;
$result["charset"] = array(
"IS_OK" => $is_ok? CClusterDBNodeCheck::OK: CClusterDBNodeCheck::ERROR,
"MESSAGE" => GetMessage("CLU_CHARSET_MSG"),
"WIZ_REC" => GetMessage("CLU_CHARSET_WIZREC", array(
"#character_set_server#" => $arCharset["character_set_server"],
"#character_set_database#" => $arCharset["character_set_database"],
"#character_set_connection#" => $arCharset["character_set_connection"],
"#character_set_client#" => $arCharset["character_set_client"],
)),
);
$is_ok = $arCollation["collation_server"] !== ""
&& $arCollation["collation_server"] === $arCollation["collation_database"]
&& $arCollation["collation_database"] === $arCollation["collation_connection"]
;
$result["collation"] = array(
"IS_OK" => $is_ok? CClusterDBNodeCheck::OK: CClusterDBNodeCheck::ERROR,
"MESSAGE" => GetMessage("CLU_COLLATION_MSG"),
"WIZ_REC" => GetMessage("CLU_COLLATION_WIZREC", array(
"#collation_server#" => $arCollation["collation_server"],
"#collation_database#" => $arCollation["collation_database"],
"#collation_connection#" => $arCollation["collation_connection"],
)),
);
$arTestSQL = array(
0 => "drop table b_cluster_test",
"sql_create" => "create table b_cluster_test(column1 int)",
"sql_insert" => "insert into b_cluster_test (column1) values (1)",
"sql_select" => "select * from b_cluster_test",
"sql_update" => "update b_cluster_test set column1=2 where column1=1",
"sql_delete" => "delete from b_cluster_test where column1=2",
"sql_drop" => "drop table b_cluster_test",
);
$is_ok = true;
$sql_erorrs_list = "";
foreach($arTestSQL as $id => $sql)
{
$res = $nodeDB->Query($sql, true);
if(!$res && $id !== 0)
{
$is_ok = false;
$sql_erorrs_list .= "
".$sql.": ".$nodeDB->db_Error."n";
}
}
$result["sql"] = array(
"IS_OK" => $is_ok? CClusterDBNodeCheck::OK: CClusterDBNodeCheck::ERROR,
"MESSAGE" => GetMessage("CLU_SQL_MSG"),
"WIZ_REC" => GetMessage("CLU_SQL_WIZREC", array(
"#sql_erorrs_list#" => $sql_erorrs_list,
)),
);
$required_version = "5.0.0";
$slave_version = $this->GetServerVariable($nodeDB, "version");
$is_ok = version_compare($required_version, $slave_version) <= 0;
$result["version"] = array(
"IS_OK" => $is_ok? CClusterDBNodeCheck::OK: CClusterDBNodeCheck::ERROR,
"MESSAGE" => GetMessage("CLU_SLAVE_VERSION_MSG", array(
"#slave-version#" => $slave_version,
"#required-version#" => $required_version,
)),
"WIZ_REC" => GetMessage("CLU_VERSION_WIZREC"),
);
return $result;
}