![]() |
![]() |
Пasha 04.08.2004 - 12:16 |
Недавно поставли УРИБ... (SQL2000) Началось... Где и чем посматреть и как убить блокировки этих таблиц? ПС: в ЕМ поубивал блокировки (Kill poc) на эти таблицы.. но входим поновой - опять тажа хрень... |
Пasha 1 - 04.08.2004 - 13:02 |
По просьбе утреннего топика: Пишу разрешение проблемы... Переход на УРИБ был после МОД... некоторое время (до сёднишних проблем) работали оба механизма... Через отладчик выяснилось, что следующая функция - вечный цикл. (Она при создании любого объекта базы создает уникальный ИДД, кто не знает МОДа)... После выставления галочки: "Не регистрировать новые объекты" усё стало летать... Хотя так и не ясно, почему стало циклится (до этого работал год на МОДе - всё бало почти пучком...) Функция ПолучитьНовыйИДД() //Предусматриваем одновременное обращение к константе нескольких пользователей Блокировка=1; Пока Блокировка=1 Цикл Попытка НачатьТранзакцию(); Константа.УникальныйIDD=Константа.УникальныйIDD;//блокируем Блокировка=0;//константа заблокирована не была - можем работать Исключение//константа заблокирована !! ОтменитьТранзакцию(); //Ожидание для возможности работы других пользователей (по совету Олега Яковлева из ЧПТФ "ЮСИ") Стр=ТекущееВремя(); Пока Стр=ТекущееВремя() Цикл КонецЦикла; КонецПопытки; КонецЦикла; //Увеличиваем счетчик в константе на единицу Константа.УникальныйIDD=Число(Константа.УникальныйIDD)+1; Рез=Прав("0000000"+СокрЛП(Константа.IDD),7)+прав("0000000000"+СокрЛП(Константа.УникальныйIDD),10); ЗафиксироватьТранзакцию(); Возврат Рез; КонецФункции |