Блокировка файлов БД
0 (0)
Блокировка файлов БД ( Mirdok 04.08.2010 14:02 )
5(1)Здравствуйте.
При работе операционистов в RS-Bank часто стало появляться сообщение "Файл занят. Повторить?". Обычно заняты account.dbt, bankdprt.dbt или persn.dbt. Проблемы возникают при проводке документов (возможно не только, но пока жалоб не было).
В макросах используется только ProcessConTrn.
Кто-нибудь с этим сталкивался?
>> ОтветитьЭто сообщение еще не означает, что заблокирован весь файл. ( Солонко Дмитрий 05.08.2010 10:51 )
5(1)В конкурентных транзакциях осуществляется блокировка отдельных записей и страниц файлов.
Если внутри конкурентной транзакции попытаться обратиться к заблокированной записи или записи, которая расположена на заблокированной странице, то возможно два сценария обработки этой ситуации, которые выполняются автоматически:
1. Операция, которая обращается к заблокированной записи, вернет соответствующий код ошибки (запись захвачена). В этом случае транзакция прерывается, все изменения откатываются. Затем транзакция автоматически запускается сначала. Количество таких циклов «прерывание-повтор» настраивается в файле rsreq.ini. Повторяться могут не только целые транзакции, но и отдельные операции с записями. Как только количество повторов транзакции достигнет значения заданного настройкой REPCOUNT выводится сообщение «Файл занят. Повторить?». Если ответить «Да», то счетчик циклов повтора будет сброшен и будет запущен еще один цикл повторов транзакции. Если ответить «Нет», то транзакция будет прервана с ошибкой.
2. Операция, которая обращается к заблокированной записи, будет ожидать, пока другой процесс освободит требуемую запись. При этом возможны взаимоблокировки (DeadLock), обработка которых выполняется по первому сценарию.
Первый сценарий соответствует значению настройки LOCKTYPE = N (по-умолчанию). Переключение на второй выполняется заданием значение LOCKTYPE = W.
>> Ответить