К списку форумов К списку вопросов
УРБД: Дастали блокировки 1ssystem, 1sconst.... Help
П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);
  ЗафиксироватьТранзакцию();
  Возврат Рез;
КонецФункции

К списку вопросов на форуме 1C

>>