OneS Cluster Admin (консоль администрирования кластера серверов 1С) - создана для того, что бы избавиться от недостатков классической консоли администрирования, а также привнести некоторые удобные фичи.
(2)
Так не понятно - мне надо сделать дополнительное логирование в механизме поиска локальных RAS.
Доступ в каталог "C:\Program Files\1cv8" не запрещен? Если запустить от имени администратора (чисто для проверки) список будет так же пустой?
(24) Список пуст при первом открытии программы (когда конфиг еше не существует).
Исправление сделал, войдет в следующий релиз.
Можно сохранить настройки сервера, а затем переоткрыть окно его настроек. Если не нарветесь на ошибку из-за отсутствия одного из каталогов ("C:\Program Files (x86)\1cv8" или "C:\Program Files\1cv8"), то список должен быть заполненным.
Для начала неплохо. К сожалению в этой консоли не реализованы самые востребованные мной вещи, которыми я пользуюсь каждый день в работе:
- колонки:
Сеансы: текущее время вызова, управляемая блокировка, время захвата СУБД, процессорное время
Рабочие процессы: время запуска, количество соединений
Сортировка по выбранной колонке
Возможность копировать значения полей списка (через отдельно открываемую форму например)
- установка блокировки сеансов: в родной консоли не хватает удобного интерфейса для выставления даты и времени, а также шаблона сообщения, где бы можно было сообщить период блокировки, который бы подставлялся автоматически.
- кнопки "перезапустить рабочие процессы" (также отсутствует в родной консоли). Решается через временное уменьшение перезапуска рабочих процессов например до 10 секунд, временной установки Принудительного завершения рабочих процессов в Истина, и Проблемные процессы завершать через 20 секунд. После минутного ожидания - возвращаем настройки в прежнее состояние. Обычно необходимо, когда не удается обновиться конфигурацию из-за проблемных соединений. Ну и при наличии утечек памяти рабочими процессами.
- отсутствует Администрирование пользователей, которые могут управлять кластером
- непонятно как обновлять данные в списках, отсутствуют какие-либо команды. Нет автоматического обновления списков с выбранным интервалом (в родной тоже нет, что сильно расстраивает), необходимо чтобы понять отключились ли все сеансы перед обновлением конфигурации.
(7) Это пока версия 0.1.0, и количество реализованного функционала действительно не велико.
Параллельно с реализацией функционала штатной консоли я буду встраивать уникальные фичи (пару таких вы уже написали, за что спасибо - их я завел в виде issue на GitHub).
"Возможность копировать значения полей списка (через отдельно открываемую форму например)" - можно подробнее, что имеется ввиду?
"непонятно как обновлять данные в списках" - да, это упущение с моей стороны, вещь неочевидная. Для обновления списка нужно еще раз кликнуть по строке в левой панели. Так же список обновляется при переключении на вкладку.
(12) У сеанса есть Свойства в контекстном меню. При вызове команды открывается форма с набором основных полей, где можно скопировать номер сеанса, имя компьютера, имя пользователя и т.д., затем использовать эти данные при отборе в Журнале Регистрации например.
Бесполезная и даже вредная вещь. Польза с неё только одна, что организация, имевшая неосторожность воспользоваться этой поделкой, спустя время вынуждена будет тратить ещё и ещё, чтобы вернуться к штатным инструментам 1С. И кто-то на этом заработает)
Возможно, автор не в курсе, но MMC уже не актуальна. Уже есть обработка, написанная сугубо на 1С, встроенная в платформу, работающая кроссплатформенно. Да, многое основано на RAS (а мой опыт показывает, что это не инструмент, а полное уродство), но всё равно лучше, чем внешняя приблуда хз на чём сделанная.
Спустя какое-то время автору надоест это поддерживать, или выйдет релиз, где что-то капитально изменится, далее добро пожаловать грабли.
Если была мысль сделать аналог, то это велосипедостроение как оно есть. Если была мысль сделать больше - то это далеко не всё, что хотелось бы, а некий фрагмент.
(10) Подскажите, сколько времени Вам понадобится, что бы вернуться к штатной консоли администрирования, если к Вам обратится организация, которая имела неосторожность воспользоваться этой поделкой?
(13) Если это будет организация, где мне платят оклад, то ровно столько, чтоб: а) опросить ответственных пользователей, чем вне рамок штатного механизма они пользовались в поделке и что из этого им надо, б) воссоздать это недостающее средствами 1С в работоспособном виде, оттестить, внедрить. Остальное-то очевидно.
А вот если это проект или почасовка, то... То всё зависит от конкретных результатов всестороннего обследования и составления сперва ТЗ, а затем техпроекта)))
Возможно, автор не в курсе, но MMC уже не актуальна. Уже есть обработка, написанная сугубо на 1С, встроенная в платформу, работающая кроссплатформенно. Да, многое основано на RAS (а мой опыт показывает, что это не инструмент, а полное уродство), но всё равно лучше, чем внешняя приблуда хз на чём сделанная.
Вы имели опыт использования данной обработки, которая, кстати сказать, так же работает через RAS? Обработка сырая и работает через ... "тернии к звездам"! Я знаю о чем говорю, т.к. работаем на проектах где пользоваться mmc-консолью нет возможности!
Не очень понятна Ваша негативная позиция по отношению к ras/rac, которую Вы пытаетесь донести в разных темах. Если у Вас не сложилось "дружба" с данным инструментом, то это не значит, что инструмент очень плох! Но в целом, как я понял, все равно все останутся при своем мнении ;)
А всем желающим это поюзать скажу: не видел ещё более глючной и кривой дряни, чем RAS. Даже расширения в 8.3.7 не были таким откровенным г*вном, как эта кривая утилита. Не связывайтесь с ней, если речь идёт о чём-то посерьёзнее личных экспериментов.
(16) Когда утилита при запуске регулярно обрушивает сервер, который не я админил и вообще там не был даже через энидеск, а запускают это толковые люди; когда будучи-таки там запущенным, RAS тихо падает в какой-то момент... то наверное, квалификацию надо поднимать не мне)))
На MacOS не запускается.
MacOS Monterey
java 16.0.2 2021-07-20
***WARNING: Display must be created on main thread due to Cocoa restrictions. Use vmarg -XstartOnFirstThread
org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:4889)
at org.eclipse.swt.SWT.error(SWT.java:4804)
at org.eclipse.swt.SWT.error(SWT.java:4775)
at org.eclipse.swt.widgets.Display.error(Display.java:1100)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:851)
at org.eclipse.swt.widgets.Display.create(Display.java:835)
at org.eclipse.swt.graphics.Device.<init>(Device.java:130)
at org.eclipse.swt.widgets.Display.<init>(Display.java:734)
at org.eclipse.swt.widgets.Display.<init>(Display.java:725)
at org.eclipse.swt.widgets.Display.getDefault(Display.java:1434)
at org.eclipse.swt.widgets.Shell.<init>(Shell.java:278)
at org.eclipse.swt.widgets.Shell.<init>(Shell.java:379)
at org.eclipse.jface.window.Window.createShell(Window.java:487)
at org.eclipse.jface.window.Window.create(Window.java:430)
at org.eclipse.jface.window.Window.open(Window.java:788)
at ru.yanygin.clusterAdminApplication.ClusterAdmin.main(ClusterAdmin.java:12)
UPD:
Ключ нужно было добавить
java --XstartOnFirstThread -jar OneS_ClusterAdmin-0.1.0-macOS.jar
(20) Да, уже все норм. Но судя по всему утилита офигела от количества сеансов в базе (там порядка 5 тыс), сейчас попробую на чем-нибудь менее нагруженном.
(21) Я поспешил с выводами что можно при сборке приложения сразу указать этот ключ.
Подробнее изучил вопрос, похоже нельзя так сделать.
Придется все таки указывать этот ключ руками, либо проще создать ярлык, в котором его прописать.
Нужная программа, но как я понял еще сырая версия.
Пока так работаю:
Одновременный запуск нескольких консолей администрирования сервера 1С на одном компьютере
https://infostart.ru/1c/articles/972571/
Утилита запускается.
Но список серверов пуст.
При нажатии "Добавить сервер" - ничего не происходит. Ождиаю, что откроется окно для ввода параметров добавляемого сервера.
В логах при этом фиксируются две строчки
2021-09-20 23:58:19,317 INFO clusterAdminLibrary [main] Calculate params for Server <newServerAddress:1540>
2021-09-20 23:58:19,317 INFO clusterAdminLibrary [main] Server <newServerAddress:1540> init done
(32) Возможно проблема в том, что отсутствует один из каталогов: "C:\Program Files\1cv8" или "C:\Program Files (x86)\1cv8".
Сейчас есть ошибка в механизме поиска локальных RAS. Я ее уже исправил, исправление войдет в следующий релиз.
Можно руками создать отсутствующий каталог, либо дождаться версии с исправлением.
Если же проблема не в этом, то можно запустить программу через консоль cmd, ошибка будет выведена в виде стека вызова.
Теперь проблема в ток, как ориентироваться в базах
У меня в списке больше 150 баз (часть из которых не используется, но все же они есть в списке).
Без сортировки, отбора, поиска (или хотя бы чего-нибудь одного) очень трудно найти нужную базу (сейчас они отображаются в хронологическом порядке по дате создания базы в кластере)
(44) Но уже удобнее.
Раньше приходилось чтобы найти свободную базу - находить ее в списке и разворачивать дерево, чтобы перейти в сеансы. Напрягало постоянно целиться мышкой, чтобы развернуть нужную базу в дереве, чтобы перейти в соединения.
Однозначно буду пользоваться даже в таком варианте, как сейчас.
(44) Может быть стоит сделать что-то вроде "избранного". Что бы можно было видеть только нужные базы.
Переключатель - "Все/Только избранное".
Избранное выводить вверху списка, при установленном переключателе в положение "Все".
Что-то типа этого, надо подумать.
(47) Любые идеи можно записывать в виде issue на GitHub.
Остальные коллеги могут дополнить/развить идею, и даже поставить + или -
Эту идею я завел в https://github.com/YanSergey/OneS_ClusterAdmin/issues/14 Если будут дополнения - пишите
Если я закрываю утилиту, затем открываю, то список добавленных серверов исчезает. Запускаю с помощью такой команды:
java -jar PUBID_1489055-OneS_ClusterAdmin-0.3.0-windows-x64.jar
Может что-то не так делаю, или пока сохранение списка подключенных серверов не реализовано?
(53)
Заметил, если запускаю jre файлик двойным щелчком, то всё сохраняется, а если запускаю с помощью cmd, то нет. Подскажите, а где сохраняется список подключений, где-то в домашнем каталоге пользователя? Я на Windows 10 работаю.
(54)
Сохранение списка серверов конечно реализовано. Все настройки, в том числе список серверов сохраняются в файле config.json в "текущем каталоге".
Предположу, что cmd запускаете из Пуска, в таком случае текущим каталогом является каталог профиля пользователя. Вероятно утилита не может туда сохранить файл настроек.
Попробуйте создать bat-файл и запускать через него, тогда текущим каталогом будет каталог с самой утилитой.
Ну а вообще если можно запускать двойным щелчком, тогда зачем запускать через cmd?
(58)
А что конкретно работает не быстро? Обновление списков?
Я у себя заметил, что надо перезапускать RAS периодически. Иначе получение данных от него идет с задержками.
(59) Получение информации о сеансах. 260 сеансов - заполнение порядка 30 сек. То же самое с соединениями. 1С Управление серверами работает гораздо быстрее.
(60)
Поищите в логе два соседних события, что я на скрине выделил. Посчитайте разницу во времени, это время получения данных от RAS.
Если ваши 30 секунд там - значит долго идет получение от RAS.
Можете еще попробовать через локальный RAS, может так будет быстрее. (отключиться, в настройках подключения выбрать локальный RAS, подключиться заново)
Выяснилась еще одна проблема, была запущена утилита, параллельно запустил скрипты обновления баз на сервере, к которому была подключена утилита, на обоих запущенных базах не отработал:
ИНФОРМАЦИЯ - Получаю список кластеров
13:18:27 КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\vanessa-runner\src\Модули\ОбщиеМетоды.os / Ошибка в строке: 83 / Сообщение от процесса
13:18:27 код:-1 процесс: server_addr=tcp://localhost:1540 descr=10053(0x00002745): Программа на вашем хост-компьютере разорвала установленное подключение. line=1470 file=src\rtrsrvc\src\DataExchangeTcpClientImpl.cpp}