![]() |
![]() |
|
Ошибки sql | ☑ | ||
---|---|---|---|---|
0
kskbmax
13.06.06
✎
09:48
|
HRESULT=80004005, SQLSTATE=40001, native=1205
Не удалось записать документ Поступление от поставщиков в аптеки 000000175025 от 17.05.2006 0:00:00 по причине {Документ.СчетПоставщика(764)}: Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции: Microsoft OLE DB Provider for SQL Server: Transaction (Process ID 60) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. HRESULT=80004005, SQLSTATE=40001, native=1205 |
|||
1
ТелепатБот
гуру
13.06.06
✎
09:48
|
||||
2
чувак
13.06.06
✎
09:50
|
Блокирует кто то
|
|||
3
Advan
13.06.06
✎
10:01
|
(0)Ну и подробности выкладывай, что делал?, когда ошибка выскакивает?
|
|||
4
avmlvm
13.06.06
✎
10:02
|
(0) Это ошибка не сиквела, а оле диби провайдера...
как вариант.. У какого-то юзеря была данный документ "захвачен" |
|||
5
Дяпти
13.06.06
✎
10:04
|
это ошибка разработчика
|
|||
6
Advan
13.06.06
✎
10:08
|
(4)8-ка обычно пишет кто блокирует...
|
|||
7
Херрес
13.06.06
✎
10:09
|
Разработчик не должен отвечать за дедлоки. По крайней мере разработчик на 1С.
Это ошибка сервера... вернее не ошибка, а фича. Время от времени, при некоторой предельной нагрузке будут возникать дедлоки. И сервер при этом случайно (или не очень случайно) выбирает себе жертву и грохает её. Бороться с этим не надо. |
|||
8
Дяпти
13.06.06
✎
10:12
|
(7) ты ошибаешься. бороться с этим надо, правда программисту 1С для этого придется весьма серьезно изучить SQL сервер. И нагрузка тут вообще не причем. Имеет значение лишь способ и порядок обращения к таблицам в конкурирующих транзакциях.
|
|||
9
Херрес
13.06.06
✎
10:21
|
(8) Ну и как на этот порядок может повлиять разработчик 1С ?
Разьве что организационно. Сказать: с утра до обеда работает отдел закупки, после обеда и до заката - розница. На счёт того, что нагрузка не влияет на вероятность возникновения дедлока... Довольно спорно... |
|||
10
Дяпти
13.06.06
✎
10:35
|
(9) Если есть интерес, почитай, что такое дедлоки и откуда они берутся.
Нагрузка влияет лишь на вероятность того, что 2 процесса передерутся за одни и теже ресурсы. Сей факт при неправильном написании кода приводит к дедлокам. Если нет желания лезть в блокировки рекомендую придерживаться нескольких правил: 1. В обработках проведения всех документов придерживаться одного порядка обращения к таблицам регистров, то есть например, во всех документах сначала надо писать в ОстаткиТоваров, а потом в ПартииТоваров, или во всех же наоборот. 2. Если в обработке проведения сначала получаются остатки по регистрам, а потом эти остатки в обработке проведения изменяются - то остатки получаем запросом с изпользованием ДЛЯ ИЗМЕНЕНИЯ. 3. Настоятельно не рекомендую пользоваться открывшейся в 8-ке возможностью проводить один документ из обработки проведения другого. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |