У меня есть 4 клиента ejb, которые получают доступ к классу POJO на разных серверах приложений. Этот класс POJO будет записывать некоторые данные в БД. BUt теперь, когда вызов для обновления данных в БД поступает одновременно с обоих серверов приложений, создается блокировка БД, и все данные не могут быть успешно сохранены.Управление записями DB, когда несколько серверов приложений одновременно обновляют данные
Ограничение: Этот класс не может быть установлен EJB, и настройки по умолчанию для сервера приложений не могут быть изменены (например: Тайм-аут транзакции).
Как решить эту проблему?
Какая ошибка? Как долго первая сессия удерживает транзакцию открытой? Каков тайм-аут транзакции для второго сеанса? Почему у вас есть две сессии, работающие на двух разных серверах приложений, обновляющих одну и ту же строку в одной таблице? Это обычно не так, как вы хотели бы разработать систему. –
Ошибка: java.sql.SQLException: ORA-02049: timeout: распределенная транзакция, ожидающая блокировки. Тайм-аут транзакции - это настройки по умолчанию для сервера приложений. – Rekha
Каков тайм-аут транзакции на вашем сервере приложений? Почему существует распределенная транзакция? Как долго вы ожидаете, что первая транзакция будет открыта, удерживая замок? –