Я использую конфигурацию <xa-datasource>
в моем автономном jboss-eap.
Внутри моего resourceDaoImpl я выполняю query.executeUpdate () для выполнения запроса H SQL. Но я получаю сообщение об ошибке, например "You cannot commit during a managed transaction"|"You cannot rollback during a subordinate session"
.
Я пробовал много вариантов
Использование @TransactionManagement(value=TransactionManagementType.BEAN)
для сохранения транзакции на уровне bean-компонента, но все равно получаю ошибку.
Вместо <xa-datasource>
используйте <datasource jta="true"...>
, но все равно ошибка.
Я не понимаю.
РЕДАКТИРОВАТЬ:
Стек вызовов очень простой, я использую спящий режим Spring в качестве основы. получение соединения с источником данных XA и выполнение хранимой процедуры с использованием запроса JPA.
Внутри хранимой процедуры я использую
PRAGMA AUTONOMOUS_TRANSACTION;
и COMMIT;
EDIT [ 1]:
@Repository
public class MyBatchDaoImpl implements MyBatchDao {
private DataSource dataSource;
void runMyBatch() {
StringBuilder query =null;
dataSource = getMydataSource(); //this method does the jndi lookup for my datasource
query = new StringBuilder();
query.append("call my_sp()");
CallableStatement st = dataSource.getConnection().prepareCall(query.toString());
st.execute();
st.closeStatement();
}
}
Интерфейс называется:
public interface MyBatchDao{
void runMyBatch();
}
Это суть моего кода.