|
v8: Взаимные блокировки (deadlock) ₽ |
☑ | ||
|---|---|---|---|---|
|
0
Vahe
11.12.06
✎
13:46
|
Возникает при выполнении запроса:
Таблица = ЗапросСвободныйОстаток.Выполнить() может кто сталкивался? От чего может это быть? |
|||
|
1
Оберштурмбанфюрер
11.12.06
✎
13:47
|
нажми на красную буковку Я в углу
|
|||
|
2
Vahe
11.12.06
✎
13:59
|
(1) Спсибо. Действительно, достаточно много информации, но не то что мне нужно.
В документации 1с написано, если я правильно понял, что взаимные блокировки возникают когда пытаются записать, обновить данные (регистр), а у меня просто запрос. Вот в чем проблема. |
|||
|
3
Оберштурмбанфюрер
11.12.06
✎
14:00
|
может в это время его кто-то юзает?
|
|||
|
4
MikleV
11.12.06
✎
14:05
|
запрос покажи
|
|||
|
5
Vahe
11.12.06
✎
14:05
|
(3) Юзает это точно, а то бы не было взаимных блокировак, только как юзает, вот в чем вопрос.Примеру если с 2 сеансов запустить одинаковый запрос, он же не приведет к взаимной блокировки
|
|||
|
6
Vahe
11.12.06
✎
14:07
|
Если Авторезервирование Тогда
ЗапросСвободныйОстаток.Текст = "ВЫБРАТЬ | ОстаткиТоваровКомпанииОстатки.Номенклатура, | ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры, | ОстаткиТоваровКомпанииОстатки.СкладКомпании КАК Размещение, | ОстаткиТоваровКомпанииОстатки.СкладКомпании.Розничный КАК СкладКомпанииРозничный, | ОстаткиТоваровКомпанииОстатки.ЦенаВРознице, | NULL КАК ТоварТара, | NULL КАК ДоговорВзаиморасчетов, | ОстаткиТоваровКомпанииОстатки.КоличествоОстаток КАК Количество, | 1 КАК СортировкаРазмещение, | ВЫБОР | КОГДА ОстаткиТоваровКомпанииОстатки.СкладКомпании = &ПредпочтительноеРазмещение ТОГДА | 0 | ИНАЧЕ | 1 | КОНЕЦ КАК СортировкаСкладКомпании, | NULL КАК ДатаПоступления |ИЗ | РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, | Заказ = &ПустойЗаказПокупателя | И Номенклатура В (&МассивНоменклатуры)) КАК ОстаткиТоваровКомпанииОстатки |ГДЕ //sss работаем только с складом документа //| НЕ ОстаткиТоваровКомпанииОстатки.СкладКомпании.Розничный //| ИЛИ ОстаткиТоваровКомпанииОстатки.СкладКомпании = &ПредпочтительноеРазмещение"; //vvv 03.10.2006г. //Было | ОстаткиТоваровКомпанииОстатки.СкладКомпании = &ПредпочтительноеРазмещение //Стало | |ДЛЯ ИЗМЕНЕНИЯ //против блокировок (deadlocked) | РегистрНакопления.ОстаткиТоваровКомпании.Остатки "; //vvv 03.10.2006г. КонецЕсли; Если Авторезервирование И Авторазмещение Тогда ЗапросСвободныйОстаток.Текст = ЗапросСвободныйОстаток.Текст + " |ОБЪЕДИНИТЬ ВСЕ |"; КонецЕсли; Если Авторазмещение Тогда ЗапросСвободныйОстаток.Текст = ЗапросСвободныйОстаток.Текст + "ВЫБРАТЬ | ЗаказыПоставщикамОстатки.Номенклатура, | ЗаказыПоставщикамОстатки.ХарактеристикаНоменклатуры, | ЗаказыПоставщикамОстатки.ЗаказПоставщику КАК Размещение, | Ложь КАК СкладКомпанииРозничный, | 0 КАК ЦенаВРознице, | ЗаказыПоставщикамОстатки.ТоварТара, | ЗаказыПоставщикамОстатки.ДоговорВзаиморасчетов, | ЗаказыПоставщикамОстатки.КоличествоОстаток КАК Количество, | 0 КАК СортировкаРазмещение, | 1 КАК СортировкаСкладКомпании, | ЗаказыПоставщикамОстатки.ЗаказПоставщику.ДатаПоступления КАК ДатаПоступления |ИЗ | РегистрНакопления.ЗаказыПоставщикам.Остатки(, | ЗаказПокупателя = &ПустойЗаказПокупателя | И ЗаказПоставщику.ДатаПоступления <= &ДатаОтгрузки //vvv 03.10.2006г. //Было //| И Номенклатура В (&МассивНоменклатуры)) КАК ЗаказыПоставщикамОстатки "; //Стало | И Номенклатура В (&МассивНоменклатуры)) КАК ЗаказыПоставщикамОстатки | |ДЛЯ ИЗМЕНЕНИЯ //против блокировок (deadlocked) | РегистрНакопления.ЗаказыПоставщикам.Остатки "; //vvv 03.10.2006г. КонецЕсли; Если Авторезервирование И Авторазмещение Тогда ЗапросСвободныйОстаток.Текст = ЗапросСвободныйОстаток.Текст + " |УПОРЯДОЧИТЬ ПО // Определяет стратегию авторезервирования и авторазмещения | СортировкаРазмещение, // Сначала на складе, потом в заказах | СортировкаСкладКомпании, // Сначала предпочтительный склад, затем остальные | ДатаПоступления УБЫВ // В порядке убывания даты отгрузки "; ИначеЕсли Авторезервирование Тогда ЗапросСвободныйОстаток.Текст = ЗапросСвободныйОстаток.Текст + " |УПОРЯДОЧИТЬ ПО // Определяет стратегию авторезервирования и авторазмещения | СортировкаСкладКомпании // Сначала предпочтительный склад, затем остальные "; ИначеЕсли Авторазмещение Тогда ЗапросСвободныйОстаток.Текст = ЗапросСвободныйОстаток.Текст + " |УПОРЯДОЧИТЬ ПО // Определяет стратегию авторезервирования и авторазмещения | ДатаПоступления УБЫВ // В порядке убывания даты отгрузки "; КонецЕсли; Таблица = ЗапросСвободныйОстаток.Выполнить().Выгрузить(); |
|||
|
7
Vahe
11.12.06
✎
14:08
|
вот запрос:
ВЫБРАТЬ ОстаткиТоваровКомпанииОстатки.Номенклатура, ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры, ОстаткиТоваровКомпанииОстатки.СкладКомпании КАК Размещение, ОстаткиТоваровКомпанииОстатки.СкладКомпании.Розничный КАК СкладКомпанииРозничный, ОстаткиТоваровКомпанииОстатки.ЦенаВРознице, NULL КАК ТоварТара, NULL КАК ДоговорВзаиморасчетов, ОстаткиТоваровКомпанииОстатки.КоличествоОстаток КАК Количество, 1 КАК СортировкаРазмещение, ВЫБОР КОГДА ОстаткиТоваровКомпанииОстатки.СкладКомпании = &ПредпочтительноеРазмещение ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КАК СортировкаСкладКомпании, NULL КАК ДатаПоступления ИЗ РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, Заказ = &ПустойЗаказПокупателя И Номенклатура В (&МассивНоменклатуры)) КАК ОстаткиТоваровКомпанииОстатки ГДЕ ОстаткиТоваровКомпанииОстатки.СкладКомпании = &ПредпочтительноеРазмещение ДЛЯ ИЗМЕНЕНИЯ //против блокировок (deadlocked) РегистрНакопления.ОстаткиТоваровКомпании.Остатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ЗаказыПоставщикамОстатки.Номенклатура, ЗаказыПоставщикамОстатки.ХарактеристикаНоменклатуры, ЗаказыПоставщикамОстатки.ЗаказПоставщику КАК Размещение, Ложь КАК СкладКомпанииРозничный, 0 КАК ЦенаВРознице, ЗаказыПоставщикамОстатки.ТоварТара, ЗаказыПоставщикамОстатки.ДоговорВзаиморасчетов, ЗаказыПоставщикамОстатки.КоличествоОстаток КАК Количество, 0 КАК СортировкаРазмещение, 1 КАК СортировкаСкладКомпании, ЗаказыПоставщикамОстатки.ЗаказПоставщику.ДатаПоступления КАК ДатаПоступления ИЗ РегистрНакопления.ЗаказыПоставщикам.Остатки(, ЗаказПокупателя = &ПустойЗаказПокупателя И ЗаказПоставщику.ДатаПоступления <= &ДатаОтгрузки И Номенклатура В (&МассивНоменклатуры)) КАК ЗаказыПоставщикамОстатки ДЛЯ ИЗМЕНЕНИЯ //против блокировок (deadlocked) РегистрНакопления.ЗаказыПоставщикам.Остатки УПОРЯДОЧИТЬ ПО // Определяет стратегию авторезервирования и авторазмещения СортировкаРазмещение, // Сначала на складе, потом в заказах СортировкаСкладКомпании, // Сначала предпочтительный склад, затем остальные ДатаПоступления УБЫВ // В порядке убывания даты отгрузки |
|||
|
8
MikleV
11.12.06
✎
14:08
|
для чего по твоему ключевое слово "ДЛЯ ИЗМЕНЕНИЯ"?
|
|||
|
9
Vahe
11.12.06
✎
14:10
|
(8)"Для изменения" захват таблиц и не допускать другим захватить эту таблицу.
Ну и что из этого? |
|||
|
10
Vahe
11.12.06
✎
14:11
|
При выполнении этого запроса возникает взаимная блокировка
|
|||
|
11
ZolotarevAA
11.12.06
✎
14:11
|
(8) Видимо, для блокировок.
|
|||
|
12
Vahe
11.12.06
✎
14:12
|
Может я что то не так понимаю?
|
|||
|
13
ZolotarevAA
11.12.06
✎
14:12
|
+11 Кстати, можно было бы так метод и назвать: ДЛЯ БЛОКИРОВОК
|
|||
|
14
Vahe
11.12.06
✎
14:12
|
(11) это точно, для того что бы до конца работы сэтой таблицой (или транзакции) никто данные в нем не изменял
|
|||
|
15
Vahe
11.12.06
✎
14:13
|
(13) Вопрос остается открыт, почему при выполнении этого запроса возникает взаимная блокировка?
|
|||
|
16
Vahe
11.12.06
✎
14:14
|
Вот ошибка:
{Документ.ЗаказПокупателя(546)}: Ошибка при вызове метода контекста (Выполнить): Ошибка выполнения запроса "Конфликт блокировок при выполнении транзакции: 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 " Таблица = ЗапросСвободныйОстаток.Выполнить().Выгрузить(); по причине: Ошибка выполнения запроса "Конфликт блокировок при выполнении транзакции: 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 |
|||
|
17
ZolotarevAA
11.12.06
✎
14:16
|
(15) Почитай инфу по ключу в 8.
|
|||
|
18
Vahe
11.12.06
✎
14:20
|
(17) Что за инфа по номеру 8? Ты знаешь ответ на мой вопрос?
|
|||
|
19
AeDen
11.12.06
✎
14:22
|
Использование предложения «ДЛЯ ИЗМЕНЕНИЯ» в языке запросов
Предложение ДЛЯ ИЗМЕНЕНИЯ позволяет заблаговременно заблокировать некоторые данные (которые могут читаться транзакцией другого соединения) уже при считывании, чтобы исключить взаимные блокировки при записи. ДЛЯ ИЗМЕНЕНИЯ дает возможность указать в запросе таблицы, считываемые данные которых предполагается изменять. В этом случае другое соединение будет ожидать освобождения этих данных уже в момент считывания внутри транзакции, т.е. не сможет прочесть заблокированные данные до тех пор, пока не будет завершена транзакция, наложившая блокировку. Блокировка от изменения данных считываемых в транзакции выполняется независимо от предложения ДЛЯ ИЗМЕНЕНИЯ. Это значит, что если внутри какой-либо транзакции считаны некоторые данные, то из другого соединения эти данные не могут быть изменены до тех пор, пока блокировка не будет снята. Если запрос выполняется вне транзакции, то в нем могут быть считаны и заблокированные данные. Блокировки устанавливаются в момент выполнения запроса, сбрасываются же при окончании транзакции. В случае если запрос выполняется вне транзакции предложение ДЛЯ ИЗМЕНЕНИЯ игнорируется. В случае если после предложения ДЛЯ ИЗМЕНЕНИЯ отсутствуют имена таблиц, блокироваться будут считанные данные из всех таблиц, задействованных в запросе. В случае указания конкретных таблиц будут блокироваться только данные из перечисленных таблиц. Для блокировки можно указывать только таблицы верхнего уровня (т.е. не табличные части), участвующие в запросе. Должны приводиться именно имена таблиц, а не их псевдонимы, определенные в запросе. В случае указания виртуальной таблицы будут блокированы данные из всех таблиц, задействованных в виртуальной таблице. При указании виртуальной таблицы следует записывать ее имя без параметров. (с) ИТС |
|||
|
20
ZolotarevAA
11.12.06
✎
14:23
|
(18) Попробуй закомментарить (вернуть назад) кем-то правленный кусок:
//vvv 03.10.2006г. //Было //| И Номенклатура В (&МассивНоменклатуры)) КАК ЗаказыПоставщикамОстатки "; //Стало | И Номенклатура В (&МассивНоменклатуры)) КАК ЗаказыПоставщикамОстатки | |ДЛЯ ИЗМЕНЕНИЯ //против блокировок (deadlocked) | РегистрНакопления.ЗаказыПоставщикам.Остатки "; //vvv 03.10.2006г. |
|||
|
21
Vahe
11.12.06
✎
14:31
|
(20) Почему? "Для изменения" написано для того что бы другие не захватили. И как может из за "Для изменения" возникать взаимная блокировка?
смотри в (19): Предложение ДЛЯ ИЗМЕНЕНИЯ позволяет заблаговременно заблокировать некоторые данные (которые могут читаться транзакцией другого соединения) уже при считывании, чтобы исключить взаимные блокировки при записи. |
|||
|
22
AeDen
11.12.06
✎
14:32
|
(21) Как-как... Таблица уже заблокирована... И ты ее пытаешься захватить... Кто-то документ проводит, а ты отчет формируешь, и со своим предложением "ДЛЯ ИЗМЕНЕНИЯ" всю малину портишь.
|
|||
|
23
Vahe
11.12.06
✎
14:38
|
(22) Спасибо, сейчась попробую.
Только: ты привел из ИТС (19) Блокировка от изменения данных считываемых в транзакции выполняется независимо от предложения ДЛЯ ИЗМЕНЕНИЯ. Это значит, что если внутри какой-либо транзакции считаны некоторые данные, то из другого соединения эти данные не могут быть изменены до тех пор, пока блокировка не будет снята. Если бы было бы как в (22) то в обработке проведения сделать запрос по регистрам в которых позже будут записаны данные, то все время должно было бы дать взаимные блокировки, от других документов того же вида. Разве не так? |
|||
|
24
Vahe
11.12.06
✎
14:50
|
(22) Это не так. Если таблица заблокирована против чтение, то с "для изменения" или без, запрос будет ждать пока не снимится блокировка, максимум что может сделать то прервать ожидание, и ни какими взаимными блокировками тут и не пахнет... Вопрос все еще остается.
|
|||
|
25
Vahe
11.12.06
✎
14:59
|
?
|
|||
|
26
France
11.12.06
✎
15:02
|
(24) поищи описания по совместимости блокировок для MS SQL
|
|||
|
27
Barsuk
11.12.06
✎
15:04
|
Взаимные блокировки - это термин движка БД, в данном случае SQL Servera.
Должно быть как минимум два ресурса, которые блокируются. Попробуй посмотреть в SQL профайлере, что происходит на SQL Servere |
|||
|
28
megalodon
11.12.06
✎
15:11
|
(27) "Должно быть как минимум два ресурса, которые блокируются." - а вот и нифига. И даже процесс может быть всего один, дедлоки бывают от распараллеливания.
|
|||
|
29
Barsuk
11.12.06
✎
15:17
|
(28) Согласен. Немного упростил.
|
|||
|
30
Vahe
11.12.06
✎
15:56
|
(26) что за описание, где искать?
|
|||
|
31
masky
11.12.06
✎
16:01
|
BOL -> deadlocks, overview
|
|||
|
32
orefkov
11.12.06
✎
16:12
|
Так и не увидел deadlock'ов, хотя в сабже и обещалось.
Конфликт блокировки увидал. |
|||
|
33
orefkov
11.12.06
✎
16:13
|
Упс. (16) просмотрел.
|
|||
|
34
Vahe
11.12.06
✎
17:10
|
?
|
|||
|
35
Barsuk
11.12.06
✎
17:25
|
Почитай про особенности работы "ДЛЯ ИЗМЕНЕНИЯ" в клиент-серверном варианте
в книге "Проф. разработка в 1С 8.0" (глава 4 и далее) |
|||
|
36
smaharbA
11.12.06
✎
17:31
|
Афигеть, этож че у вас запрос апдейт или инсёрт делает или еще какой алтер ?
|
|||
|
37
Vahe
11.12.06
✎
21:19
|
Вопрос остается открытым
|
|||
|
38
Neco
11.12.06
✎
21:34
|
(37) Ну давай закрывать ;-)
В запросе напиши: Что такое "РАЗРЕШЕННЫЕ" разберись сам - будет тебе домашнее задание |
|||
|
39
Vahe
11.12.06
✎
21:45
|
(38) "Учитель" не путаешь ли ты систему rls с deadlock ами?
|
|||
|
40
Neco
11.12.06
✎
21:46
|
(39) Мдя ... путаю :-(
|
|||
|
41
Vahe
11.12.06
✎
21:47
|
(40) Бывает. Нормально
|
|||
|
42
Neco
11.12.06
✎
21:48
|
(41) Хорошо в чем вопрос, после такого бурного обсуждения он должен был быть снят
|
|||
|
43
Vahe
11.12.06
✎
21:50
|
(42) Возникает deadlock не могу понять почему
|
|||
|
44
Vahe
11.12.06
✎
21:50
|
Притом возникает не во время изменение данных, а во время запроса
|
|||
|
45
Neco
11.12.06
✎
21:51
|
(44) Во время выполнения запроса, какие либо действия с данными из запроса производятся? Например провидение документа?
|
|||
|
46
Vahe
11.12.06
✎
21:51
|
этот deadlock возникает когда проводим один и тот же тип документа (ЗаказПокупателья)
|
|||
|
47
Vahe
11.12.06
✎
21:52
|
Да, Сперва очищается регистр:
НаборОстаткиТоваровКомпании = РегистрыНакопления.ОстаткиТоваровКомпании.СоздатьНаборЗаписей(); НаборОстаткиТоваровКомпании.Отбор.Регистратор.Установить(Ссылка); НаборОстаткиТоваровКомпании.Прочитать(); НаборОстаткиТоваровКомпании.Очистить(); НаборОстаткиТоваровКомпании.Записать(); |
|||
|
48
Vahe
11.12.06
✎
21:53
|
После запрос:
ВЫБРАТЬ ОстаткиТоваровКомпанииОстатки.Номенклатура, ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры, ОстаткиТоваровКомпанииОстатки.СкладКомпании КАК Размещение, ОстаткиТоваровКомпанииОстатки.СкладКомпании.Розничный КАК СкладКомпанииРозничный, ОстаткиТоваровКомпанииОстатки.ЦенаВРознице, NULL КАК ТоварТара, NULL КАК ДоговорВзаиморасчетов, ОстаткиТоваровКомпанииОстатки.КоличествоОстаток КАК Количество, 1 КАК СортировкаРазмещение, ВЫБОР КОГДА ОстаткиТоваровКомпанииОстатки.СкладКомпании = &ПредпочтительноеРазмещение ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КАК СортировкаСкладКомпании, NULL КАК ДатаПоступления ИЗ РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, Заказ = &ПустойЗаказПокупателя И Номенклатура В (&МассивНоменклатуры)) КАК ОстаткиТоваровКомпанииОстатки ГДЕ ОстаткиТоваровКомпанииОстатки.СкладКомпании = &ПредпочтительноеРазмещение ДЛЯ ИЗМЕНЕНИЯ //против блокировок (deadlocked) РегистрНакопления.ОстаткиТоваровКомпании.Остатки |
|||
|
49
Vahe
11.12.06
✎
21:54
|
После срабатывает стандартное удаление после "ПередЗаписем"
|
|||
|
50
Vahe
11.12.06
✎
21:54
|
И входит в обработку проведение
|
|||
|
51
Vahe
11.12.06
✎
21:54
|
Где уже есть запрос с Левым соединением, который контролирует остатки
|
|||
|
52
Vahe
11.12.06
✎
21:55
|
Вот deadlock возникает или при выполнении первого запроса или при 2 запросе
|
|||
|
53
Vahe
11.12.06
✎
21:55
|
притом процедуры стандартные, почти ничего не доработанно из 10.1
|
|||
|
54
Vahe
11.12.06
✎
21:56
|
Работало долгое время нормально, а уже 2 недельи умирает от множество deadlock ов, у меня еще подозрение есть что это связанно с какими то индесными файлами в SQL server
|
|||
|
55
aka MikleV
11.12.06
✎
21:59
|
(54) откуда такое подозрение? не знаю ..путаница в индексах может вызвать дедлок или нет.. ненастолько спец, но можно реиндексировать базу.
|
|||
|
56
Vahe
11.12.06
✎
22:01
|
Есть скрипт, который запускается и реиндексируется таблицы в SQL server
|
|||
|
57
Vahe
11.12.06
✎
22:03
|
Я подумал может кто сталкивался?
|
|||
|
58
Neco
11.12.06
✎
22:05
|
По попробуй обнови статистику базы данных SQL. В Query Analyzer выполни скрипт:
exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN' DBCC FREEPROCCACHE |
|||
|
59
MikleV
11.12.06
✎
22:06
|
(56) угу)есть..абрахамс выкладывал.. поищи по нику smaharbA
|
|||
|
60
Vahe
11.12.06
✎
22:07
|
(58) а что даст это?
|
|||
|
61
Neco
11.12.06
✎
22:07
|
//Регулярная переиндексация таблиц базы данных с помощью команды
DBCC DBREINDEX ( table_name ). //Регулярная дефрагментация индексов базы данных с помощью команды DBCC INDEXDEFRAG(database_name, table_name, index_name). |
|||
|
62
Vahe
11.12.06
✎
22:07
|
(59) скрипт есть, только не знаю, поможет ли, и выполняется несколько часов
|
|||
|
63
Neco
11.12.06
✎
22:09
|
(60) Скорее всего ничего, но попробуй вообще такая команда обновляется статистику выборки запросов из базы, вроде как должна увеличит скорость выполнения запроса, но возможно повлияет и на твою проблему.
В твоем случае нужно экспериментировать. Попробуй убери очистку регистра, будут ли блокировки? |
|||
|
64
Vahe
11.12.06
✎
22:10
|
(63) Уже пробовал, единственное что не возникает deadlock это когда убираю "Левое соединение" во 2 запросе
|
|||
|
65
Vahe
11.12.06
✎
22:11
|
(63) Спасибо, я попробую.
|
|||
|
66
Vahe
11.12.06
✎
22:14
|
Итоги не были расчитаны вообще, вот только что рассчитали, после поменял "Левое соединенме" на вложенный запрос, "Для изменение" во вложенном, и после этого "Левое соединение", очень быстро стало работать и пока нету deadlock ов
|
|||
|
67
smaharbA
11.12.06
✎
22:19
|
Страно, неужто в 8.0 всеже индексы при запросе реорганизуются, или того патче перезапись каких "служебных" полей идет ? (не знаю 8 вообще)
|
|||
|
68
Neco
11.12.06
✎
22:22
|
(67) Нет вроде такое не происходит
|
|||
|
69
Neco
11.12.06
✎
22:28
|
Рекомендую статью с ИТС
"Особенности проектирования конфигурации с точки зрения обеспечения параллельности работы пользователей" |
|||
|
70
ildus
11.12.06
✎
22:30
|
А как избежать взаимных блокировок в файловой (не SQL) версии 1С v7.7 ??
|
|||
|
71
smaharbA
11.12.06
✎
22:33
|
(70) а тама нету их по определению...
|
|||
|
72
ildus
11.12.06
✎
22:34
|
(71) Увы возникают однако
|
|||
|
73
Neco
11.12.06
✎
22:43
|
(72) Никак, переходи на файловую версию
|
|||
|
74
ildus
11.12.06
✎
22:44
|
+(72) В терминале с файловой 1С v77 с установленной компонентой ромикса для устранения проблемы 100% загрузки процессора при ожидании захвата таблицы, иногда возникает ситуация, когда у нескольких пользователей происходит ожидание захвата какой-нибудь таблицы, при загрузке процессора на терминале = 0%. Это длится около минуты, пока один из пользователей не отвалится из-за таймаута.
|
|||
|
75
Neco
11.12.06
✎
22:45
|
+(73) Тьфу, уходи с файловой версии переходи на клиент-серверную
|
|||
|
76
ildus
11.12.06
✎
22:45
|
(73) дык это на файловой и происходит
|
|||
|
77
ildus
11.12.06
✎
22:49
|
(75) разве для v7.7 сущестувет клиент-серверная версия? SQL что-ли?
|
|||
|
78
smaharbA
11.12.06
✎
23:09
|
(74) нафих тебе эта ВК, поставь время ожидания 1 и успокойся, пущай жмут себе чаще...
|
|||
|
79
Neco
11.12.06
✎
23:10
|
(77) Да
|
|||
|
80
ildus
11.12.06
✎
23:21
|
(78) и будут все обработки например импорта документов аварийно завершаться если кто-нибудь устроит транзакцию дольше 1сек... Было и 1 сек и 5 и 0 -ничего хорошего
|
|||
|
81
smaharbA
11.12.06
✎
23:23
|
(80) А НачатьТранзакцию отменили ?
|
|||
|
82
ildus
11.12.06
✎
23:26
|
(81) чтобы все пользователи на время работы обработки пошли курить?
|
|||
|
83
Vahe
12.12.06
✎
09:16
|
Ничего не помогает, вопрос открыт
|
|||
|
84
Neco
12.12.06
✎
09:26
|
(83) Еще раз опиши что ты делаешь в модуле документа. Что в процедуре ПередЗАписью, ПриЗаписи и ОбработкаПроведения. И где точно возникают блокировки
|
|||
|
85
Neco
12.12.06
✎
09:30
|
Если дела такие серьезные то советую обратится на партнерский форум: http://partners.v8.1c.ru/forums/
|
|||
|
86
Vahe
12.12.06
✎
09:44
|
(84) У меня сильные подозрения что виноват SQL server
|
|||
|
87
Neco
12.12.06
✎
09:50
|
(86) Возможно, поэтому чтобы решить твою задачу, нужно полное описание ошибок + платформа 1С и SQL. Иначе что-то сказать трудно.
Выход на партнерский форум есть? |
|||
|
88
Vahe
12.12.06
✎
09:51
|
(87) Есть. Да, еще посмотрью, сейчась вроде нету дедлоков
|
|||
|
89
Vahe
12.12.06
✎
09:52
|
(87) Тебе отдельное спасибо
|
|||
|
90
rsv
12.12.06
✎
10:12
|
www.rsdn.ru . Там в разделе Статьи/MSSQL server/ статья есть "Что такое взаимоблокировки и как с ними бороться". Статья сугубо о MSSQL но интересна. Автор приводит способы отлова взаимоблокировок средствами сервера и пути их анализа.
|
|||
|
91
Vahe
12.12.06
✎
11:19
|
(90) не могу найти MSSQL server в статьях
|
|||
|
92
Barsuk
12.12.06
✎
11:27
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |