Я, как и многие, столкнулись с тем, что ЦУП достаточно капризная программа, особенно в плане COM коннектора, и на платформе 8.3 категорически не желает его признавать установленным.
Что было: сервер (физ. машина) ОС WIN2008 server, SQL Server 2005, 1С Сервер х64, 1С платформа 8.3.5.1098 и Центр управления производительностью, редакция 2.0 (2.0.5.43).
Первая попытка была путем типовых инструкций типа: regsvr32 comcntr.dll, уговорить его работать, все напрасно, но думаю, что сам шаг необходим.
После долгих мучений пришлось взяться за отладчик и исследовать ЦУП.
В итоге выяснилось, что встроеная библиотека никак не опознает того, что в системе есть COM-соединитель, и решение объяснить, откуда он берется, вручную, оказалось правильным.
Вот собственно код для процедуры общего модуля «МастерНастройки»:
Процедура ПроверитьCOMСоединитель() Экспорт
Инструменты = КипВнешнийКомпонент.ПолучитьИнструменты();
Путь = КипВнешнийКомпонент.ПутьCOMСоединителя(Инструменты);
//РМС
//Если ПустаяСтрока(Путь) Тогда
// ВызватьИсключение "COM-соединитель (comcntr.dll) не зарегистрирован.";
//КонецЕсли;
Путь = "C:Program Files1cv88.3.5.1098incomcntr.dll";
//Поскольку в описании говорится именно о папке с клиентским модулем в теории возможно что подойдет и "C:Program Files (x86)1cv88.3.5.1098incomcntr.dll"
Версия = КипВнешнийКомпонент.ВерсияФайла(Инструменты, Путь);
СисИнфо = Новый СистемнаяИнформация;
Если СисИнфо.ВерсияПриложения <> Версия Тогда
ВызватьИсключение "Зарегистрированная версия " + Версия + " COM-соединителя ("
+ Путь + ") отличается от необходимой версии " + СисИнфо.ВерсияПриложения + ".";
КонецЕсли;
Общий.ПолучитьComСоединитель();
КонецПроцедуры
После этого ЦУП на сервере прижился и даже выполняет свои функции.
Это не единственная проблема, с которой я столкнулся на 8.3 с ЦУПом, не знаю, может в новой версии поправили, но буквально несколько месяцев назад настраивал — извелся весь. Мониторить мог, счетчики работали, но при попытке собрать какую-нибудь инфу типа плана запросов — просто удалял данные. Ну, много, много там напильником было перепилено, пока не заработало. Тут вот в комментариях обсуждали:http://forum.infostart.ru/forum24/topic93661/
(1) necropunk, Да читал я данный раздел, правда по запуску на 8.3 там ничего толком не нашлось.
Но ошибок конечно в ЦУПе масса, с этим полностью согласен, без напильника с ним не поработаешь.
Решение не совсем верное, поскольку «comcntr.dll» регистрируется от последней установленной платформы… т.е. если после 8.3.5.1098 установить 8.2.16 то он обновится, и чтобы правильно работал нужно регистрировать необходимый «comcntr.dll» под правами администратора.
как-то так.. regsvr32 «C:Program Files1cv88.3.5.1098incomcntr.dll»;
regsvr32 /n /i:user comcntr.dll
Выглядит странным сегодня, в конце 2014 года пытаться запускать версию 11 года. Актуальная на сегодня версия — 2.0.13.10, вышла совсем недавно.
(5) vlad.frost, на 8.3 нормально запускается? В комментариях курса по Оптимизации Андрея Бурмистрова, говорится, что, по крайней мере, Тест-Центр работает нестабильно!
Да уж, намучаемся с 8.3. Зато возможностей новых интересных вагон!)
(6)DoctorRoza
Последний ЦУП 2.0.13.10 вполне себе хорошо работает как на 8.2.19 + MS SQL 2008/2012, так и на 8.3.5.1248 + MS SQL 2012/2014.
Проверен в двух основных вариантах развертывания:
— на одном общем сервере,
— на двух независимых серверах в домене: Сервер 1С+СУБД + Сервер 1С(ЦУП)+СУБД.
В настройках ЦУП, Меню – ЦУП – Настройки, наконец то изменили дефолтную настройку длительности хранения файлов логов ТЖ до 4 часов. В старых версиях стояло 10 000 часов и при настройке необходимо было не забыть уставить разумную длительность, а теперь их можно даже не открывать, ну если только для отключения режима отладки.
Из возможных нюансов могу отметить что в моей версии ЦУП:
— Изменен запрос в функции ВыгрузитьДанные общего модуля Анализ, вложенный запрос заменен обращением к временной таблице.
— Изменен запрос в процедуре ПодготовитьДанныеДляПросмотра общего модуля ЖурналПоказателей, данные журнала выбираются только за анализируемый период времени.
— Для варианта на одном общем сервере изменены названия счетчиков в функциях ИмяСчетчикаКоличествоОжиданийMSSQL и ИмяСчетчикаКоличествоВзаимоблокировокMSSQL общего модуля КипWindows. Тут решение для каждого индивидуальное, необходимо смотреть как этот счетчик называется в системном мониторе и такое же название вписать в функцию. Все остальные проблемы связаны с настройкой прав.
Два варианта: либо старая версия ЦУП не понимавшая формат ТЖ 8.3, либо у пользователя, под которым был запущен сервер 1С с ЦУПом, тупо небыло прав на папку c: emp
На прошлой неделе тестировал центр управления производительностью на 8.3, все работает великолепно, никаких ошибок замечено не было. Так что статья ИМХО вообще ни о чем
(9) sky.xn, ну, видимо, тут раз на раз. У меня вот не сразу взлетел, многие функции глючили страшно, хотя настраивал последний релиз.
(10)
Какие например?
(11) h00k, При попытке анализа запросов, да и вообще, любого аналитического показателя, замеры не сохранялись, показатели анализировались, но просмотр анализов был недоступен. Пришлось довольно поковыряться, в общем. Дело было совсем не в правах, данные в ЦУП попадали. Не знаю, может не разобрался, конечно, да и время поджимало, других задач много было…
Спасибо автору
В очередной раз поражаюсь корявости ЦУП. Версия 2.0.14.12.
Стоит клиент-серверно на 8.2. При поптыке подключиться к 8.3.5 ругается что не совпадает версия с 8.2.
Ставлю локально (установлена тестовая 8.3.6, зарегана для консоли 8.3.5) пытаюсь подключиться к 8.3.5 — не совпадает версия с 8.3.6.
Ставлю в настройках запуска ЦУП версию 8.3.5, запускает как 8.3.5, но при попытке подключения вообще выдает кривую ошибку про точку входа в DLL.
Вот неужели трудно было дать пользователю выбрать версию в настройках?
(14) friend0, что-то вы с версиями просто мудрите, мне кажется… Если версия платформы на которой крутится ЦУП и версия платформы исследуемой базы совпадают — выдается ошибка? Можно скрин или просто текст ошибки, может кто подскажет чего, тут многие от ЦУПа натерпелись…
(15) necropunk, да если совпадают, то поди будет работать. Мне сейчас просто не особо надо — хотел быстренько глянуть что там как в новой версии, не появилось ли вдруг каких-нибудь длинных запросов. Но быстренько не получилось. Но ИМХО разворачивать отдельный ЦУП для каждой используемой версии (у нас и 8.1 и 8.2 и 8.3 используются) не совсем правильно, если вся разница в используемой длл для СОМ-соединения.
день добрый. Проблемка возникла сначала такая как в теме, но она решилась добавлением кода, а вот как решить не выбирается кластер а выдаёт «Справочник.ИнформационнаяБаза.Форма.Настройка.Форма(160)}: Поле объекта не обнаружено (Name)
СписокКластеров.Добавить(ТекущийКластер.MainPort, ТекущийКластер.Name + Описание);»
Вследствие чего не могу запустить монитор.
(17) spyx7, сам решил, если у кого также вылезет то вот в этой процедуре вместо ТекущийКластер.Name нужно написать ТекущийКластер.HostName
// Заполнить список доступных кластеров на указанном центральном сервере
//
Процедура КластерНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
СписокКластеров = ЭлементыФормы.Кластер.СписокВыбора;
СписокКластеров.Очистить();
Кластеры = мАгентСервера.GetClusters();
Для Каждого ТекущийКластер Из Кластеры Цикл
Порт = Формат(ТекущийКластер.MainPort, «ЧГ=0»);
Описание = » (» + ТекущийКластер.HostName + «:» + Порт + «)»;
СписокКластеров.Добавить(ТекущийКластер.MainPort, ТекущийКластер.HostName + Описание);
//СписокКластеров.Добавить(ТекущийКластер.MainPort, ТекущийКластер.Name + Описание);
КонецЦикла;
КонецПроцедуры // КластерНачалоВыбораИзСписка()
У меня проблемма на 8.3.9. Не регистрируеться компонента
(19)
Запускайте ЦУП под клиентом х32.
(20) Переустановил компоненту на сервере — и поехало.
Но вот установил ЦУП 2.1 — а он даже мониторинг не запускает, ошибка в коде.
Спасибо за статью, помогло ))
(18)
//
Процедура КластерНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
СписокКластеров = ЭлементыФормы.Кластер.СписокВыбора;
СписокКластеров.Очистить();
Кластеры = мАгентСервера.GetClusters();
Для Каждого ТекущийКластер Из Кластеры Цикл
Порт = Формат(ТекущийКластер.MainPort, «ЧГ=0»);
Описание = » (» + ТекущийКластер.HostName + «:» + Порт + «)»;
СписокКластеров.Добавить(ТекущийКластер.MainPort, ТекущийКластер.HostName + Описание);
//СписокКластеров.Добавить(ТекущийКластер.MainPort, ТекущийКластер.Name + Описание);
КонецЦикла;
КонецПроцедуры // КластерНачалоВыбораИзСписка()
Показать
Спасибо, помогло))