![]() |
#3 |
Участник
|
Нужно использовать "оптимистическую транзакцию" (см. код), а также проверить, что в транзакции на добавление/изменение записи действительно нет ничего лишнего
X++: public void run() { #OCCRetryCount ; try { ttsbegin; ... ttscommit; } catch (Exception::Deadlock) { retry; } catch (Exception::UpdateConflict) { if (appl.ttsLevel() == 0) { if (xSession::currentRetryCount() >= #RetryNum) { throw Exception::UpdateConflictNotRecovered; } else { retry; } } else { throw Exception::UpdateConflict; } } }
__________________
// no comments |
|
|
За это сообщение автора поблагодарили: Poleax (1), Deepoint (1). |
|
|