Имя: Пароль:
1C
 
Администрирование кластера серверов
0 R1A1
 
18.06.10
13:02
Получил массив кластеров

COM_Conn=Новый COMОбъект("V81.COMConnector");
Agent=COM_Conn.ConnectAgent(Srv);
Clasters= Agent.GetClusters();
Для каждого Claster из Clasters Цикл

Теперь хочу получить все соединения ИБ у агента есть метод
GetInfoBaseConnections(<Кластер>, <Информационная база>)
где <Информационная база>  ИБ, для которой должен быть получен массив описаний соединений.
А как получить эту  <Информационная база>?

И еще может кто знает где толком расписано про методы Администрирование кластера серверов
1 Maxus43
 
18.06.10
13:11
Просмотр информации о соединениях:

Соединитель = Новый COMObject("V81.COMConnector");

ИмяМашины         = "MOBILE-ADS";
Порт             = "1540";
СтрокаСоединения = "TCP://" + ИмяМашины + ":" + Порт;

СоединениеСАгентом = Соединитель.ConnectAgent(СтрокаСоединения);
МассивКластеров    = СоединениеСАгентом.GetClusters();

// получается первый массив кластера
ОписаниеКластера = МассивКластеров.GetValue(МассивКластеров.GetLowerBound());

// в случае если определены администраторы кластера должны
// быть указаны данные о логине
СоединениеСАгентом.authenticate(ОписаниеКластера, "", "");
   
МассивСоединений   = СоединениеСАгентом.GetConnections(ОписаниеКластера);
МаксимальныйИндекс = МассивСоединений.GetUpperBound();
   
Для ТекущийИндекс = МассивСоединений.GetLowerBound() По МаксимальныйИндекс Цикл
   ОписаниеСоединения = МассивСоединений.GetValue(ТекущийИндекс);
   
КонецЦикла;


Получение информации по ИБ:

Соединитель = Новый COMObject("V81.COMConnector");

ИмяМашины         = "MOBILE-ADS";
Порт             = "1540";
СтрокаСоединения = "TCP://" + ИмяМашины + ":" + Порт;

СоединениеСАгентом = Соединитель.ConnectAgent(СтрокаСоединения);
МассивКластеров    = СоединениеСАгентом.GetClusters();

// получается первый массив кластера
ОписаниеКластера = МассивКластеров.GetValue(МассивКластеров.GetLowerBound());

// в случае если определены администраторы кластера должны
// быть указаны данные о логине
СоединениеСАгентом.authenticate(ОписаниеКластера, "", "");

МассивСерверовКластера = СоединениеСАгентом.GetWorkingServers(ОписаниеКластера);

// выбирается самый первый рабочий сервер кластера
ОписаниеСервераКластера = МассивСерверовКластера.GetValue(МассивСерверовКластера.GetLowerBound());
МассивПроцессов        = СоединениеСАгентом.GetServerWorkingProcesses(ОписаниеКластера,ОписаниеСервераКластера);

// выбирается самый первый рабочий процесс рабочего сервера
ОписаниеПроцесса = МассивПроцессов.GetValue(МассивПроцессов.GetLowerBound());

СтрокаСоединения     = "TCP://" + ОписаниеПроцесса.HostName + ":" + Формат(ОписаниеПроцесса.MainPort, "ЧГ=");
СоединениеСПроцессом = Соединитель.ConnectWorkingProcess(СтрокаСоединения);

// вводятся данные пользователя информационной базы
СоединениеСПроцессом.AddAuthentication("", "");

МассивБаз = СоединениеСПроцессом.GetInfoBases();



Вроде всё что можно уже почти, на примерах....
2 R1A1
 
18.06.10
13:30
Через вот этот метод GetInfoBaseConnections можно получить все соединения с ИБ?
3 Maxus43
 
18.06.10
13:33
можно... GetInfoBases() - получает бызы, по каждой из них можно получить соединения
4 Maxus43
 
18.06.10
13:34
если интересуют только активные пользователи, то чожно и так

Выборка = ПользователиИнформационнойБазы.ПолучитьПользователей();
5 R1A1
 
18.06.10
13:35
Я хочу отключить всех пользователей от базы.
6 Maxus43
 
18.06.10
13:37
выкидывание пользователей - типовой механизм есть. А чтобы все соединения с базой мочить (в т.ч. фоновые задания и т.д.) по другому надо...

Коннектор = Новый COMОбъект("V81.COMConnector");
Сервер = Коннектор.ConnectWorkingProcess("TestServer");
   
// Аутентифицироваться с административными правами в нужной базе.
Сервер.AddAuthentication("Администратор", "");
   
// Создать объект нужной информационной базы.
ИнформационнаяБаза = Сервер.CreateInfoBaseInfo();
ИнформационнаяБаза.Name = "Test_Base";
   
// Получить соединения базы.
СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза);
   
// Разорвать соединения клиентских приложений.
Для Каждого Соединение Из СоединенияБазы Цикл
   Сервер.Disconnect(Соединение);
   
КонецЦикла;
7 Maxus43
 
18.06.10
13:37
блин, я стал Синтакс-Помошником (
8 R1A1
 
18.06.10
13:44
Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение
9 Maxus43
 
18.06.10
13:48
Чем типовой выброс не устраивает? так мочить - жестоко, вдруг что то юзер делает, а ты его.... не по христиански это
10 R1A1
 
18.06.10
13:49
А типовой это где?
11 R1A1
 
18.06.10
13:49
А нашел.
12 R1A1
 
18.06.10
13:52
(9) Просто хотел разобраться с Администрирование кластера серверов не могу представить себе структурированую схему что как работает и соответственно где и какие методы применять.
13 Maxus43
 
18.06.10
13:53
типовой правда тоже не идеальный... можно подпилить напильником ещё
14 R1A1
 
18.06.10
13:58
А где-нибудь про эту схему можно почитать? Я имею ввиду как соотносятся друг с другом массив серверов, массив кластеров, процессы, рабочие процессы и и т.д. , сейчас какая-то каша из всего этого.
15 Maxus43
 
18.06.10
14:11
(14) самая наглядная схема - открой консоль сервера 1с, все крестики нажми, вот именно в таком порядке они и соотносятся
16 R1A1
 
18.06.10
14:14
ОК
17 Demiurg
 
18.06.10
14:57
работа с кластерами лучше всего изучать по 1С:ЦУП
18 Demiurg
 
18.06.10
14:57
работу