![]() |
![]() |
![]() |
|
Через COM подключение вытащить список баз в кластере | ☑ | ||
---|---|---|---|---|
0
Derectiva
03.09.12
✎
20:45
|
Пишу скрипт для бекапа 1с баз, уперся в то что скрипт должен получить весь список баз в кластере. Хочу вытащить через com соединение.
Подскажите как можно получить список баз в кластере? Или ткните в литературу. Заранее спасибо! |
|||
1
Stim
03.09.12
✎
21:28
|
Как посмотреть список баз, зарегистрированных в выбранном кластере?
В приведенном примере (листинг 8.19) производится подключение к агенту сервера, выбирается первый кластер. Для этого кластера получается список информационных баз, который затем обходится в цикле. Листинг 8.19. Просмотр списка информационных баз Соединитель = Новый COMObject("V81.COMConnector"); ИмяМашины = "MOBILE-ADS"; Порт = "1540"; СтрокаСоединения = "TCP://" + ИмяМашины + ":" + Порт; СоединениеСАгентом = Соединитель.ConnectAgent(СтрокаСоединения); МассивКластеров = СоединениеСАгентом.GetClusters(); // получается первый массив кластера. ОписаниеКластера = МассивКластеров.GetValue(МассивКластеров.GetLowerBound()); // в случае если определены администраторы кластера, должны быть указаны данные о логине. СоединениеСАгентом.authenticate(ОписаниеКластера, " ", " "); МассивБаз = СоединениеСАгентом.GetInfoBases(ОписаниеКластера); МаксимальныйИндекс = МассивБаз.GetUpperBound(); Для ТекущийИндекс = МассивБаз.GetLowerBound() По МаксимальныйИндекс Цикл ОписаниеБазы = МассивБаз.GetValue(ТекущийИндекс); Сообщить(ОписаниеБазы.Descr); Сообщить(ОписаниеБазы.Name); КонецЦикла; |
|||
2
Stim
03.09.12
✎
21:30
|
Как получить данные по рабочим процессам, запущенным на рабочем сервере кластера?
В приведенном примере (листинг 8.20) производится подключение к агенту сервера, выбирается первый кластер. В этом кластере выбирается первый рабочий сервер и для него получается список рабочих процессов, который затем обходится в цикле. Листинг 8.20. Просмотр списка рабочих процессов Соединитель = Новый COMObject("V81.COMConnector"); ИмяМашины = "MOBILE-ADS"; Порт = "1540"; СтрокаСоединения = "TCP://" + ИмяМашины + ":" + Порт; СоединениеСАгентом = Соединитель.ConnectAgent(СтрокаСоединения); МассивКластеров = СоединениеСАгентом.GetClusters(); // получается первый массив кластера. ОписаниеКластера = МассивКластеров.GetValue(МассивКластеров.GetLowerBound()); // в случае если определены администраторы кластера, должны быть указаны данные о логине. СоединениеСАгентом.authenticate(ОписаниеКластера, " ", " "); МассивСерверовКластера = СоединениеСАгентом.GetWorkingServers(ОписаниеКластера); // выбирается самый первый рабочий сервер кластера. ОписаниеСервераКластера = МассивСерверовКластера.GetValue(МассивСерверовКластера.GetLowerBound()); МассивПроцессов = СоединениеСАгентом.GetServerWorkingProcesses(ОписаниеКластера,ОписаниеСервераКластера); МинимальныйИндекс = МассивПроцессов.GetLowerBound(); МаксимальныйИндекс = МассивПроцессов.GetUpperBound(); Для ТекущийИндекс = МинимальныйИндекс По МаксимальныйИндекс Цикл ОписаниеПроцесса = МассивПроцессов.GetValue(ТекущийИндекс); КонецЦикла; ОписаниеПроцесса – это COM-объект, обладающий следующими свойствами (рис. 8.3): Рис. 8.3. Свойства описания процесса |
|||
3
Stim
03.09.12
✎
21:31
|
Как получить более подробную информацию по информационной базе?
В приведенном примере (листинг 8.26) производится подключение к агенту сервера, выбирается первый кластер. Для него определяется список рабочих серверов и выбирается первый рабочий сервер. Затем получается список рабочих процессов этого сервера, выбирается первый рабочий процесс и получается информация об информационных базах, зарегистрированных в кластере серверов. Листинг 8.26. Получение информации по информационной базе Соединитель = Новый COMObject("V81.COMConnector"); ИмяМашины = "MOBILE-ADS"; Порт= "1540"; СтрокаСоединения = "TCP://" + ИмяМашины + ":" + Порт; СоединениеСАгентом = Соединитель.ConnectAgent(СтрокаСоединения); МассивКластеров = СоединениеСАгентом.GetClusters(); // получается первый массив кластера. ОписаниеКластера = МассивКластеров.GetValue(МассивКластеров.GetLowerBound()); // в случае если определены администраторы кластера, должны быть указаны данные о логине. СоединениеСАгентом.authenticate(ОписаниеКластера, " ", " "); МассивСерверовКластера = СоединениеСАгентом.GetWorkingServers(ОписаниеКластера); // выбирается самый первый рабочий сервер кластера. ОписаниеСервераКластера = МассивСерверовКластера.GetValue(МассивСерверовКластера.GetLowerBound()); МассивПроцессов = СоединениеСАгентом.GetServerWorkingProcesses(ОписаниеКластера,ОписаниеСервераКластера); // выбирается самый первый рабочий процесс рабочего сервера. ОписаниеПроцесса = МассивПроцессов.GetValue(МассивПроцессов.GetLowerBound()); СтрокаСоединения = "TCP://" + ОписаниеПроцесса.HostName + ":" + Формат(ОписаниеПроцесса.MainPort, "ЧГ = "); СоединениеСПроцессом = Соединитель.ConnectWorkingProcess(СтрокаСоединения); // вводятся данные пользователя информационной базы. СоединениеСПроцессом.AddAuthentication(" ", " "); МассивБаз = СоединениеСПроцессом.GetInfoBases(); Описание информационной базы содержит следующую информацию (рис. 8.5): Рис. 8.5. Свойства описания информационной базы |
|||
4
Stim
03.09.12
✎
21:31
|
ну и хватит пожалуй)
|
|||
5
Derectiva
03.09.12
✎
21:48
|
Спасибо большое, добрый человек! Очень выручил.
|
|||
6
Stim
03.09.12
✎
21:50
|
(5) скачай Гапец "Простые примеры разработки"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |