Intershop 7 - свойство для контроля типа блокировки транзакции - PullRequest
1 голос
/ 29 апреля 2020

Читая документацию Intershop, я сталкивался с упоминаниями о механизмах блокировки pesimisti c и optimisti c (где optimisti c реализуется через атрибут OCA в таблицах базы данных).

I ' Мне интересно, как контролировать, какой тип блокировки используется во всей базе данных и где узнать больше об этих типах блокировки.

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Насколько я знаю, на уровне объекта есть только оптимистическая блокировка c, и это нельзя отключить. По этой причине у каждой таблицы в intershop есть столбец OCA. Однако у вас есть другие способы блокировки

Например:

ORMObject.tryLock. Это блокирует фактическую строку в базе данных с помощью запроса: select for update nowait. Я не рекомендую использовать это, вы можете столкнуться с некоторыми довольно трудными для отладки тупиковых ошибок. См. Javado c для получения дополнительной информации.

Тогда есть Locking Framework . Это на самом деле не останавливает процесс обновления данных каким-либо процессом, это способ для межшоповой организации управлять различными процессами, позволяя им блокировать ресурсы, чтобы они не могли взаимодействовать друг с другом. Однако вы все равно можете игнорировать эти блокировки.

Я обычно стараюсь избегать блокировок. Эта KB может быть интересна для вас, особенно часть о Транзакциях.

0 голосов
/ 29 апреля 2020

Оптимизация c кэширование задается с помощью модификатора класса "oca" при создании соответствующих моделей EDL (язык определения Enfinity). См. Документацию Intershop по адресу https://support.intershop.com/kb/index.php/Display/247P28

...