У меня есть приложение на основе событий, основанное на MDB, пружинной интеграции и JPA для сохранения.
Приложение развернуто в Weblogic 10.3 со значением по умолчанию максимального размера пула (16).
Мое приложение должно обрабатывать некоторые сообщения, которые модифицируют БД.
Представьте себе, что у меня есть сценарий использования, когда мне приходится обрабатывать некоторые сообщения, для которых по их логике необходимо вставить объект домена, если он не существует, или обновить его, если он существует.
Итак, мой компонент, который модифицирует БД, проверяет, существует ли объект или нет, а затем вызывает слияние для JPA.
Поскольку два параллельных сообщения выполняются параллельно, когда я вызываю слияние на dao, JPA запускает два оператора вставки, поскольку объект еще не сохранен, и поэтому правильно выполняется только одно из них.
Существует ли шаблон для обработки такого рода "состояния гонки" в приложении, управляемом событиями?
С уважением
Massimo