Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 17:28

Конфликт блокировок при выполнении транзакции

Автор ladylora, 24 апр 2014, 12:43

0 Пользователей и 1 гость просматривают эту тему.

ladylora

Здравствуйте! Я-пользователь. Производственная компания. 1с8,2 УПП. Своего программиста у нас нет, есть только сис админ, который периодически нанимает организацию, и ...вопросы решаются годами! Я серьезно, просто уже достало. Прога последнее время стала чудить. Сейчас приведу конкретный пример. Вопрос следующего характера: по вашему мнению проблема в "мозгах" или в"железе"?  Наш сисадмин однозначно отвечает  что большая нагрузка потому и транзакция.....ниже привожу пример: 
  Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.ПолныеПрава.Модуль(1283)}: Ошибка при вызове метода контекста (Записать)

по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.НастройкаПравДоступа.Модуль(1009)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
Ошибка выполнения запроса
по причине:
Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Provider for SQL Server: Превышено время ожидания запроса на блокировку.
HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=38, Severity=10, native=1222, line=1
 
Однако, раньше мы (пользователи) друг другу "не мешали".

Спасибо за внимание!

DmitriyF

Цитата: ladylora от 24 апр 2014, 12:43
Здравствуйте! Я-пользователь. Производственная компания. 1с8,2 УПП. Своего программиста у нас нет, есть только сис админ, который периодически нанимает организацию, и ...вопросы решаются годами! Я серьезно, просто уже достало. Прога последнее время стала чудить. Сейчас приведу конкретный пример. Вопрос следующего характера: по вашему мнению проблема в "мозгах" или в"железе"?  Наш сисадмин однозначно отвечает  что большая нагрузка потому и транзакция.....ниже привожу пример: 
  Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.ПолныеПрава.Модуль(1283)}: Ошибка при вызове метода контекста (Записать)

по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.НастройкаПравДоступа.Модуль(1009)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
Ошибка выполнения запроса
по причине:
Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Provider for SQL Server: Превышено время ожидания запроса на блокировку.
HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=38, Severity=10, native=1222, line=1
 
Однако, раньше мы (пользователи) друг другу "не мешали".

Спасибо за внимание!
УПП обновляли или нет?
Добавлено: 24 апр 2014, 13:05


Чтобы понять почему так происходит надо анализировать запросы в каких моментах это возникает, какие таблицы блокируются.

ladylora

УПП обновляем регулярно. Поняла вас, значит все таки программа, а не железо. Есть смысл идти в закладку "Разработка на заказ".

DmitriyF

Цитата: ladylora от 24 апр 2014, 13:20
УПП обновляем регулярно. Поняла вас, значит все таки программа, а не железо. Есть смысл идти в закладку "Разработка на заказ".
Ну не факт. Например при проведении каких документов возникает ошибка?

Добавлено: 24 апр 2014, 13:49


Цитата: DmitriyF от 24 апр 2014, 13:48
Цитата: ladylora от 24 апр 2014, 13:20
УПП обновляем регулярно. Поняла вас, значит все таки программа, а не железо. Есть смысл идти в закладку "Разработка на заказ".
Ну не факт. Например при проведении каких документов возникает ошибка?
А у Вас регламенты на SQL Server проводятся или нет? Какая версия УПП? Платформа?
Добавлено: 24 апр 2014, 13:56


http://www.gilev.ru/timeoutlock/

ladylora

Ну не факт. Например при проведении каких документов возникает ошибка?

Возникает ошибка при проведении документов поступления товаров и услуг текущей даты (апрель), в то время когда допустим параллельно другой пользователь у себя запустил расчет себестоимости по 1 кварталу(январь-март).

А при этом параллельно еще глюк возникает: начинает ругаться на не уникальность кода (номера) проводимого документа, и тогда (по рекомендации сисадмина) нумерацию доков вбиваем вручную. 1С - Нумерует как хочет.

А у Вас регламенты на SQL Server проводятся или нет?
судя по описанному про "как бог на душу положит" нумерацию, регламенты не проводятся.
Какая версия УПП? Платформа?

1С:Предприятие 8.2 (8.2.16.368) Управление производственным предприятием, редакция 1.3 (1.3.51.1)

DmitriyF

Цитата: ladylora от 24 апр 2014, 15:03
Ну не факт. Например при проведении каких документов возникает ошибка?

Возникает ошибка при проведении документов поступления товаров и услуг текущей даты (апрель), в то время когда допустим параллельно другой пользователь у себя запустил расчет себестоимости по 1 кварталу(январь-март).

А при этом параллельно еще глюк возникает: начинает ругаться на не уникальность кода (номера) проводимого документа, и тогда (по рекомендации сисадмина) нумерацию доков вбиваем вручную. 1С - Нумерует как хочет.

А у Вас регламенты на SQL Server проводятся или нет?
судя по описанному про "как бог на душу положит" нумерацию, регламенты не проводятся.
Какая версия УПП? Платформа?

1С:Предприятие 8.2 (8.2.16.368) Управление производственным предприятием, редакция 1.3 (1.3.51.1)
Во первых 1С нормально нумерует объекты. Если сбилась нумерация то можно перенумеровать обработкой. Установите последнюю платформу 8.2.19.90(если не ошибаюсь). Про регламенты - сбор статистики, дефрагментация таблиц, чистка кэша. Все они выполняются средствами SQl servera. Конечно с УПП не работаю но мне кажется что таблицы могут быть заблокированы при расчете себестоимости.

olgaSky

У меня похожая проблема, читала про транзакции 1С.
Все слишком сложно для не программиста.
Но, транзакции у нас были в ЗиУП, вопрос решился разнесением по времени массовой работы с документами.
К примеру больничные забиваем с 16 до 18, а отпуска с 12 до 13.
От проблем избавились, возможно есть и иные методы, что скажете?

Sinsinmin

Ну так если идёт расчёт себестоимости, то скорее всего происходит захват объектов и соответственно другие пользователи на это время не могут провести захваченные объекты, поэтому...ждите...или запускайте расчёт себестоимости на ночь...
А раньше...ну возможно вам везло...и вы не пытались проводить захваченные объекты.
Конфликт блокировки по моему мнению...это когда Объект захвачен для какой либо задачи, а другой пользователь хочет этот объект изменить...так что тут дело не в программе и железе, а в том что два пользователя хотят изменить один объект одновременно, что как бэ неправильно

SvoyaSistema

Цитата: ladylora от 24 апр 2014, 12:43
.............
Однако, раньше мы (пользователи) друг другу "не мешали".

Спасибо за внимание!

Раньше , вероятно, интенсивность использования была меньше, база была меньше.
Серьёзные отчеты и обработки лучше запускать без Юзерей

olgaSky

Кстати как вариант, мне ваш коллега по вопросу транзакций в 1С , посоветовал рассчет себестоимости вынести из транзакции и модуля проведения. Можно даже не ночью - транзакций не будет.
Или разбить расчет сразу по филиалам и иным разрезам. Т.е. не взять все а потом по кускам считать, а взять кусок- посчитать, потом второй и т.д. - помогает. У нас вопрос решился этим полностью.
Собственно вопрос что часто программа пишется по оптимизации кеширования, а надо по оптимизации блокировок.
При многопользовательском режиме это сильно актуальней.
Добавлено: 11 дек 2014, 13:25


Тот же коллега рассказал что в одном из подразделений крупной нефтяной компании, разбили базу на 2: центр и переферия.
В центре шла основная работа, в переферии все регламентные рассчеты.
Мне кажется это дешевле чем управляемые блокировки, мы счас у себя такое внедряем - это небо и земля.
Раньше при 50 пользователях все загиналось - сейчас тьфу-тьфу, но 120 человек работают стабильно.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск