33
Рейтинг

Aero



  •   Регистрация: 25.06.2009 (14 лет назад)

  •   Был(а) на сайте: вчера в 09:54

Подписчики 2

Группы

Партнер IS-SP

Рейтинг 33


Комментарии

AdminКонфликт блокировок при выполнении транзакции#7 27.04.24 14:02
(6) MS SQL-ю выделено 64 Гб, памяти всем остальным хватает, проблема не в ней.
За ссылку спасибо - почитаю, остальное поднастрою по необходимости.
AdminКонфликт блокировок при выполнении транзакции#1 27.04.24 11:38
Есть клиент, у которого периодически (раз в 2 недели) база торговли начинает сильно тормозить, у некоторых пользователей она вылетает - описание ниже.

Ошибки:

1)

Цитата
РегистрСведений.СписанныеТовары
Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции:
Microsoft SQL Server Native Client 11.0: Превышено время ожидания запроса на блокировку
...

Таблица 1С может быть любая. В примере выше это регистр сведений, был и регистр накоплений по взаиморасчетам, и пр.

2) (появилась 27.04.2024)

Цитата
РегистрНакопления.ТоварыНаСкладах
Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции:
Microsoft SQL Server Native Client 11.0: Транзакция (идентификатор процесса 63) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно.
HRESULT=80004005, SQLSrvr: SQLSTATE=40001, state=33, Severity=D, native=1205, line=1

Также таблицы 1С разные.

3) (сопутствующие события из журнала событий ОС, раздел Приложения) - когда вылетает 1С при проведении (у пользователей НЕ с полными правами)

Цитата
Имя сбойного приложения: 1cv8.exe, версия: 8.3.22.2143, метка времени: 0x6498baf4
Имя сбойного модуля: entext.dll, версия: 8.3.22.2143, метка времени: 0x6498bf4c
Код исключения: 0xc0000005
Смещение ошибки: 0x00230c92
Идентификатор сбойного процесса: 0xd858
Время запуска сбойного приложения: 0x01da8ecfce70cedc
Путь сбойного приложения: C:\Program Files (x86)\1cv8\8.3.22.2143\bin\1cv8.exe
Путь сбойного модуля: C:\Program Files (x86)\1cv8\8.3.22.2143\bin\entext.dll
Идентификатор отчета: ccc39f85-c3e4-456a-9a87-17de32364cd7
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:

Путь сбойного модуля тоже разный, в основном это basic.dll и entext.dll, был также frame.dll.



Наблюдения:
Получается ошибки 1-2 у пользователей с полными правами.
Ошибка 3 (вылет из 1С) у пользователя с неполными правами



Имеется выделенный сервер (Intel Xeon E-3396G 4GHz, ОЗУ 128 Гб, RAID1 из 2-х SSD INTEL SSDSC2KB960GZ по 960 Гб каждый + 2 отдельных SSD для резервных копий).
ОС Windows Server 2019 Standart
Платформа 1С 8.3.22.2143
Базы (работают в клиент-серверном варианте):
- УТ 10.3.47.3 (32 Гб) - проблемы с ней. В среднем работает 40 человек. В среднем 400 реализаций в день (большая часть розница, но используется документ реализация товаров, а не чек ККМ; 5 касс).
- БП 3.0 (17 Гб)
MS SQL Server 2019
Kaspersky Small Office Security
КриптоПро 5

Хронология событий:

0) Перешли на новый сервер и клиент-серверную архитектуру 01.03.2024.

1) 1-я ситуация 02.04.2024 (спустя месяц беспроблемной работы).
Началось все после обновления базы БП (связано или нет не знаю) - в обед обновил, после этого начала тормозить торговля.
Худо-бедно доработали, у меня не получилось ничего решить (не помню, что именно делал в тот день).
03.04.2024 тормоза и вылеты остались. Где-то прочитал, что проблема может быть в зависших сеансах - удалял из консоли администрирования сервера 1С - не помогало.
Решил перезапустить службы и почистить кэш.
Проблема оставалось даже тогда, когда в базе осталось всего 3 пользователя (я, который ничего в базе не делал; кассир, кто проводит продажи; и еще один сотрудник, но область данных, с которой работает, практически не пересекается с кассиром - продажи не делает).
Т.е. я для проверки просто перепровожу реализацию - висит более 10 секунда, потом ошибка 1 (см. выше).
И только после выхода всех, кроме меня проблема ушла.
Что сделал и не помогло:
- выгрузил базу;
- удалил полностью базу из консоли и из СУБД MS SQL Server;
- остановил службу сервера 1С и MS SQL;
- удалил кэш службы сервера 1С;
- запустил службы, добавил базу, загрузил ее из dt.
Что помогло:
- временно на час отключил антивирус Касперского.
Отключил - все заработало. Потом через час он сам включился - проблем не наблюдалось.

2) 15.04.2024 (прошло почти 2 недели после последней проблемы)
За день до этого (14.04.2024 в воскресенье) делал выгрузку из базы торговли в базу бухгалтерии (делаем раз в квартал, объем большой, занимает много времени).
В понедельник с утра - после загрузки приходится в базе бухгалтерии дополнительно обрабатывать загруженные данные (проведение/перепроведение и пр.).
Сразу после этого (а может и во время) опять началось, т.е. опять после "напряжной" работы с базой бухгалтерии начинает косячить база торговли.
Торговля висит, 1С вылетает.
Отключение антивируса не помогает.
Перезагрузка сервера тоже не помогает.
Нашел топик https://forum.infostart.ru/forum86/topic185917 - проблема в т.ч. как у меня (ошибка 3). Но ничего из комментариев не помогло (удаление сертификатов - их нет; отключение заставки - ее нет; прочее).
Кое-как все работают.
Вечером выкидываю всех пользователей, удаляю антивирус, перезагружаю сервер.
На следующей день все нормально.

3) 27.04.2024
Опять началось после обеда.
Теперь с базой бухгалтерией вообще не работали (суббота, отчетность сдана) - посмотрел журнал регистраций. Антивируса нет. Работает около 15-ти человек, постоянно проводят продажи 5 кассиров, у остальных другая работа.
Но теперь появляется ошибка 2 (см. выше), ранее ее не было.
Торговля висит, 1С вылетает.
Заметил, что ОС хочет обновиться - есть обновления готовые к установке.
Из опыта знаю, что иногда, когда ОС хочет обновится, или уже обновилась и хочет перезагрузиться, то бывают проблемы с сетью.
Хотя СУБД и 1С стоят на одном сервере, решил все-таки обновить ОС.
Всех выгнал, обновил, перезагрузил сервер.
Вроде заработало - документы хоть и долго, но проводятся, мне никто не звонит и не пишет. В консоли администрирования серверов 1С очень изредка появляются зависшие сеансы (удаляю их); в журнале событий ОС всего несколько событий завершения 1С.
что будет завтра - не знаю. Надеюсь что опять на пару недель отпустит.

Вопрос - что делать, как решить данную проблему?

Думаю, обновить платформу, но ей всего 9 месяцев. Обновить MS SQL Server - тоже вряд ли поможет.
Переписывать конфу (управляемые блокировки, разделение итогов и пр.) - ну даже не знаю пока, т.к. проблема с разными таблицами и ошибка в разных местах кода появляется.
Обрезать базу - возможно, но не уверен, что поможет.
Проблема имеет плавающих характер (гейзенбаг какой-то). Пока единственное стабильно условие - это раз примерно в 2 недели.
DevОшибка "Сеанс работы завершен администратором"#33 25.12.23 6:36
(4) Помогла проверка логической целостности (только эта проверка, другие флаги были сброшены).
Загрузил dt в файловую базу, проверил (были найдены и исправлены ошибки), выгрузил в dt, загрузил его в серверную базу - все ОК.
Перезапуск служб, перезагрузка сервера, добавление пользователей в политики "Блокировка страниц в памяти" и "Настройка квот памяти для процесса" не помогли.
AdminIIS - ошибка 502 / 404#11 20.03.23 9:57
После долгих попыток настроек все таки заработало. Была также ошибка 500, но в тему уже не могу её добавить. В общем, что привело к решение (не факт, что все это, и возможно что-то забыл упомянуть:

1) Папке с базой дать права на изменение группам "IIS_IUSRS" и "IUSR". В инструкциях почему-то указана только группа IIS_IUSRS.

2) Инструкция Пошаговая инструкция настройки web-сервисов для 1Сv8.3 и IIS 8.5, но в моем случае был нюанс:
2.1) в п.10 указано, что нужно включить опцию "Разрешены 32-разрядные приложения" - в моем случае её нужно как раз отключить (после этого последнего шага у меня все заработало). У меня стоит 64-х разрядная 1С, ОС тоже 64-х разрядная. Изначально эта опция была выключена, потом я её включил, согласно инструкции, потом опять вырубил.
2.2) запуск конфигуратора от имени Администратора для публикации базы. Это есть в инструкции, но по началу я этим пренебрёг, т.к. работал на сервере под админом, и посчитал, что это достаточно. Как раз при публикации 1С ругалась, что нет прав на папку с базой данных у группы "IUSR".

3) Возможно пригодится, если будете использовать п. 2.1 - перезапускать пул приложений DefaultAppPool (там же оснастке IIS - Диспетчер служб IIS в панели управления в Администрировании). Написал на всякий случай, т.к. пулы перезагружаются отдельно от самой службы (может перезапуска службы и достаточно).
AdminIIS - ошибка 502 / 404#9 16.03.23 12:52
Папке с базой добавил полные права группе IIS_IUSRS - не прокатило.
AdminIIS - ошибка 502 / 404#5 16.03.23 11:22
Удалил блок с новым сервисом из файла публикации вручную, так, чтобы файл публикации после стал таким же как до, перезапустил IIS - ошибка 404. Странно то, что данные в файле идентичны тому, когда ошибка была 502.
AdminIIS - ошибка 502 / 404#4 16.03.23 11:22
(3) Могу сделать (бэкап этой папки есть на всякий случай), только что удалять - все?

Прикрепленные файлы:

inetpub.png
AdminIIS - ошибка 502 / 404#2 16.03.23 10:55
Переопубликовал базу, теперь ошибка 404.
Различие между старым файлов публикации и новым - добавился 1 http-сервис.
AdminIIS - ошибка 502 / 404#1 16.03.23 10:32
Имеется сервер RPD с файловой базой.
На нем же установлен и настроен IIS.
Есть сайт, который подключается к базе по http-сервису, и забирает данные по товару - нестандартная выгрузка товаров на сайт (делал не я).
Все нормально работало до недавнего момента.

На днях в базе пришлось капитально обработать данные (решал проблему с ГТД в УТ 11).
На случай, если что-то не получится, сделал следующее, чтобы можно было быстро и без ущерба для всего (сайта, баз бухгалтерии и пр.) откатиться назад.
Я отрубил все синхронизации с БП, выключил IIS через стандартную оснастку, переименовал папку с базой - полностью отключил рабочую базу от "внешнего мира". Скопировал базу, и работал в копии. Если бы у меня не получилось задуманное, я бы удалил копию, а переименованную папку с рабочей базой переименовал бы обратно, и все включил бы обратно.

В итоге у меня все получилось сделать как задумывал, поэтому переименованную рабочую базу удалил (бэкап само собой был сделан до всех манипуляций), копию папки с базой, в которой работал, переименовал, как называлась папка с рабочей базой до этого - в итоге копия базы стала рабочей.
Включил все синхронизации в базе (включил регламентные задания и пр), включил IIS в оснастке.

IIS перезапускал, даже сервер перезагружал - ничего не помогло.

И после этого сайт перестал подключаться к базе.
Код состояния 502
Это строка лога IIS (в квадратных скобах замененные значения) с ошибкой:
2023-03-16 07:16:44 10.27.11.10 GET [здесь адрес с базой] - 443 [пользователь] [адсре сайта] GuzzleHttp/7 - 502 0 0 1000134
А это строка лога, когда все работало:
2023-03-12 00:00:17 10.27.11.10 GET [здесь адрес с базой] - 443 [пользователь] [адсре сайта] GuzzleHttp/7 - 200 0 0 10927

Настройки публикации в конфигураторе не трогал. Дата изменения файла публикации "default.vrd" старая, т.е. файл не изменен.

Причина скорее всего точно в моих действиях, но я не могу понять, что произошло и как исправить.
DevИспользование ЗапуститьПриложение() без потери фокуса?#34 03.12.21 5:37
(16) Использование ID процесса не помогло, а вот использование заголовка окна помогло.

Код
WSHShell = Новый COMОбъект("WScript.Shell");
WSHShell.AppActivate(ПолучитьЗаголовокПриложения());