Document Locking

  • Автор темы Xalet
  • Дата начала
X

Xalet

Есть БД с документами. В документах хранится нумерация. В базе разрешено блокирование документов(Document locking). Пользователи через агент обращаются к базе, проверяется не заблокирован ли нужный документ, если нет, то блокируется, считывается номер, записывается новый, сохраняется закрывается, снимается блокировка.

Проблема в том, что если происходит сбой, когда документ заблокирован, он остается заблокированым постоянно.

Какие варианты решения? Спасибо.

P.S. возможно поможет Provisional lock, но я как не искал, так и не нашел описания, каким образом он работает.
 
M

morpheus

xalet
я просто разлочивал агентом документы , лок которых больше Х часов
 
M

morpheus

где то тут берём коолекцию документов...
doc -notesdocument который предположительно залочен

Код:
			LName = doc.GetItemValue( "LockHolders" )
LDate = doc.doc.GetItemValue( "~$WritersDate" )
If ( Len(LDate(0))+ Len(LoName(0)) )>0 Then ' Document Locked
If Len(LDate(0))>0 Then
delim = Now-LDate(0)
If delim > 0.5 Then Call doc.UnLock
Else
Call doc.UnLock
End If
End If


больше не дам, коммерческие права и всё такое
 

Murtas

Green Team
11.04.2006
137
1
BIT
5
Если кто-то знает другие способы, то не стесняйтесь - отписывайтесь

способ №2 - сделать свою блокировку :unsure:

В целом и обычно стандартная блокировка почти подходит всем ... но есть траблы (не буду здесь перечислять известные мне - одна из основных не доступность мастер сервера ) которые на пустом месте пораждает эта блокировка ... и частенько люди вообще ее отключают, так как soft locking и так присутствует, а репликационных конфликов с помощью этой локировки - не избежать по любому
 
X

Xalet

База только на сервере и ни с чем не реплецируется. Доступна только из кода.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!