Ваша задача выполняется в транзакции, и, вероятно, вы вызываете commit в этой транзакции. Поэтому вы должны вызывать ваши операции с БД, фиксировать и закрывать БД вне этой транзакции.
Создать сессионный компонент транзакции, управляемый компонентом
@TransactionManagement(TransactionManagementType.BEAN)
и переместите код, связанный с БД и транзакциями, в новый компонент.