Для чего?
Как всем давно известно, 1С 7.7 - тот еще подарок в части параллельности работы пользователей в базе. Для высоконагруженных систем это является большой проблемой. Чтобы понять, кто и кого блокирует и при выполнении какого запроса.
Предполагается использовать как внешнюю обработку для своих конфигураций. Эта публикация содержит обработку в составе конфигурации только для того, чтобы показать, как подключаются 1С++ и классы.
Где работает?
Умеет работать только в базах 1C 7.7 SQL формата.
Проверялась на: 1С 7.7 v. 7.70.027, MS SQL Server 2005 и MS SQL Server 2012
Что умеет?
- Определять "корень зла" - серверный процесс (SPID) вызвавший ожидание на блокировках.
- Формировать иерархическое дерево заблокированных серверных процессов.
- Определять доменных пользователей на терминальных серверах (используя WMI) для каждого из серверных процессов.
- Принудительно завершать найденные процессы (по PID) на терминальных серверах.
- Определять имя хоста соответствующего серверному процессу (SPID-у) (определяет всегда, в независимости от того на каком компьютере запущена 1С).
- Получать текст запроса для любого серверного процесса из полученного списка (полезно для анализа узких мест в конфигурации).
- Определять время выполнения последнего запроса серверного процесса.
- Есть режим, показывающий все блокировки на SQL сервере (не только текущей базы)
Состав конфигурации.
В состав конфигурации входит:
- обработка "КтоБлокируетБазу".
- глобальный модуль.
- Вспомогательные классы.
Как установить?
- Распаковать в какую-либо папку файл Blocks.7z. Убедиться что в папке есть файл DefCls.prm и подпапки Classes, Icons. Без этих файлов работать не будет.
- В конфигураторе "Конфигурация -> Загрузить измененную конфигурацию..." указать файл 1Cv7.MD из папки п. 1.
- В конфигураторе "Администрирование -> Параметры базы данных SQL...". настроить сервер, базу данных, и пользователя.
- Сохранить конфигурацию и согласиться с созданием словаря данных.
Необходимые настройки при работе в режиме предприятия.
- Группа "Доменный администратор" - Имя и пароль доменного администратора для получения имен доменных пользователей и завершения процессов по PID.
- Группа "Настройки обновления таблицы процессов" - группа флажков, описывающих поведение таблица процессов.
- Группа "Фильтрация" - содержит одно поле "Имя базы данных на SQL сервере". Если поле заполнено, будет искать серверные процессы только в этой базе, если нет, будет искать по всем базам, расположенным на SQL сервере, к которому подключена эта база.