Websphere 7 - BMP Entity Bean - ejbStore вызывается в конце транзакции, а не после метода установки
Мы переходим с Weblogic на Websphere 7. Это устаревшее приложение, содержащее компоненты EJB 2.0. Бобы Entity имеют BMP. Фасадные компоненты сеанса обновляют компоненты, но обновления сохраняются в базе данных (вызов методов ejbStore() для компонентов) в конце транзакции, что вызывает проблему, поскольку обновления не видны другому клиенту, поддерживающему транзакцию. В Weblogic есть параметр "delay-updates-before-end-t-tx", который может быть установлен в false. Это приводит к тому, что обновления сохраняются, не дожидаясь окончания транзакции. Я читал, что стандартное поведение Websphere - не ждать окончания транзакции, но, похоже, это не так.
Я также попытался установить следующие аргументы JVM:
-Dcom.ibm.ws.pm.deferredcreate = false -Dcom.ibm.ws.pm.batch = false
Это тоже не помогло.
Любая помощь по этому вопросу будет принята с благодарностью.
Спасибо, Дикшит
1 ответ
Существуют декларативные варианты для CMP, но я не верю, что есть варианты для BMP. Должна быть возможность использовать метод расширения EJBContextExtension.flushCache() WebSphere Application Server, чтобы программно заставить контейнер хранить / очищать все ожидающие объекты: