Поддержка серверов

CClusterDBNodeCheck::SlaveNodeCommon: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=165105

<?php 
//    /bitrix/modules/cluster/classes/mysql/dbnode_check.phpCClusterDBNodeCheck::SlaveNodeCommon()
//    447:

    
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_okCClusterDBNodeCheck::OKCClusterDBNodeCheck::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_okCClusterDBNodeCheck::OKCClusterDBNodeCheck::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_okCClusterDBNodeCheck::OKCClusterDBNodeCheck::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(
            
=> "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($sqltrue);
            if(!
$res && $id !== 0)
            {
                
$is_ok false;
                
$sql_erorrs_list .= "<br />&nbsp;".$sql.": ".$nodeDB->db_Error."\n";
            }
        }
        
$result["sql"] = array(
            
"IS_OK" => $is_okCClusterDBNodeCheck::OKCClusterDBNodeCheck::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_okCClusterDBNodeCheck::OKCClusterDBNodeCheck::ERROR,
            
"MESSAGE" => GetMessage("CLU_SLAVE_VERSION_MSG", array(
                
"#slave-version#" => $slave_version,
                
"#required-version#" => $required_version,
            )),
            
"WIZ_REC" => GetMessage("CLU_VERSION_WIZREC"),
        );

        return 
$result;
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение