У нас есть служба REST, развернутая на сервере jboss. До недавнего времени у нас была настроена только одна транзакция, и это было на уровне сервиса. Таким образом, либо транзакция прошла успешно, и все было зафиксировано, либо все было откатано, если возникла исключительная ситуация.
Теперь мы начали добавлять запись в таблицу, даже если служба возвращает ответ об ошибке. Для этого мы добавили аннотацию к API, используемому службой отдыха:
@Transactional(propagation = Propagation.REQUIRES_NEW)
Это означает, что если мы сгенерируем исключение из службы, строка будет сохранена в базе данных.
Однако, поскольку мы добавили эту новую транзакцию, у нас есть утечка соединения, и я вижу это в журналах:
javax.resource.ResourceException: IJ000453: невозможно получить управление
соединение для Java: / JDBC / XXX в
org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection (WrapperDataSource.java:151)
в
org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection (WildFlyDataSource.java:69)
Я полагаю, что зафиксированное соединение не освобождается при возникновении исключения. Требуется ли какой-то дополнительный конфиг?