Будьте в спящем режиме оптимистическая блокировка.. как это работает?

Я читал ниже блога о, в спящем режиме оптимистическая блокировка. Я планирую использовать его с, в спящем режиме. Но, у меня есть одно беспокойство. у нас есть код Java и код C++, оба подключения к одной базе данных. В то время как, код Java может использовать, в спящем режиме для достижения оптимистической блокировки, я хочу заставить код C++ сделать то же самое. Кроме того, код C++ использует некоторый унаследованный код.

http://turgaykivrak.wordpress.com/2009/05/16/72/

Существует ли документация, которая объясняет, как в спящем режиме, достигает оптимистической блокировки?

Любые предложения ценятся.

Спасибо
Бала

8
задан Boolean 27 July 2010 в 20:13
поделиться

1 ответ

Если быть точным, вы имеете в виду не оптимистическую блокировку, а оптимистичный параллелизм (без блокировки). Использование метки времени для версии предназначено только для поддержки устаревшей базы данных, потому что современная база данных может (по крайней мере, теоретически) работать быстрее, чем точность сохранения метки времени.

Использовать свойство целочисленной версии очень просто:

  • При вставке: установить версию на 1
  • При обновлении и удалении: увеличить версию на 1 и добавить «where version = @ version» к каждому состоянию sql. Вернуть количество измененных записей. Выбрасывать StaleObjectStateException, когда количество измененных записей отличается от ожидаемого.

Лично я бы не стал создавать два отдельных приложения, записывающих одни и те же данные в не-унаследованной ситуации, потому что это означает, что бизнес-логика должна быть продублирована, а изменения должны применяться к двум приложениям, также когда изменение актуально для только одно из приложений.

11
ответ дан 5 December 2019 в 15:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: