Ситуация:
Пользователь 1 (u1) держит запись в EXCLUSIVE-LOCK, Пользователь 2 (u2) пытается проапдейтить её же. U2 весело наблюдает блокировку.
Ситуация усложняется тем что программа которой пользуется u1 корявая (т.е. висит месага ОК, u1 пьёт чай и думает что всё хорошо)
вопрос: что будет с u2 через полчаса?
Как можно обработать блокировку у u2 програмно.
ограничение задачи: поправить прогу с которой работает u1 - невозможно.
Да и по возможности извлечь максимум информации о том кто блокирует.
вот.
буду благодарен любой информации
блокировка записи
Проверка блокировки
Зачем вы так изголяетесь, чтобы проверить, захвачена запись или нет?
Почему так не написать:
IF NOT CAN-FIND(record WHERE expression SHARE-LOCK NO-WAIT) THEN
MESSAGE "Record is locked" VIEW-AS ALERT-BOX.
Это кусок из Progress 4GL Reference Help про CAN-FIND:
SHARE-LOCK
Specifies that CAN-FIND determines whether the record can be SHARE-LOCKed. If you use this option without the NO-WAIT option, and if the record is EXCLUSIVE-LOCKed, CAN-FIND waits until that lock is released before returning. If you use SHARE-LOCK with the NO-WAIT option, then CAN-FIND returns a FALSE value immediately if the record is EXCLUSIVE-LOCKed.
Почему так не написать:
IF NOT CAN-FIND(record WHERE expression SHARE-LOCK NO-WAIT) THEN
MESSAGE "Record is locked" VIEW-AS ALERT-BOX.
Это кусок из Progress 4GL Reference Help про CAN-FIND:
SHARE-LOCK
Specifies that CAN-FIND determines whether the record can be SHARE-LOCKed. If you use this option without the NO-WAIT option, and if the record is EXCLUSIVE-LOCKed, CAN-FIND waits until that lock is released before returning. If you use SHARE-LOCK with the NO-WAIT option, then CAN-FIND returns a FALSE value immediately if the record is EXCLUSIVE-LOCKed.