У меня есть источник данных XA Datasource в Wildfly 8.2. Это все работает нормально, но когда я называю:XA Datasource не создает транзакции
sql.query("LOCK TABLE table_name IN EXCLUSIVE MODE").execute();
я получаю исключение, показывая, что Wildfly имеет не создал сделки:
org.postgresql.util.PSQLException: ERROR: LOCK TABLE can only be used in transaction blocks
Если я вручную создать транзакцию с BEGIN
и COMMIT
вокруг моего запроса блокировки, все работает так, как ожидалось, но я бы хотел, чтобы Wildfly сделал это для меня автоматически.
Почему Wildfly не создает транзакцию автоматически и что мне нужно сделать, чтобы исправить ее?
Для справки, код вызывается в методе, как:
@RequestScoped
@Path("abc")
public class Controller {
@PUT
public Response m(Object data) {
//HERE
}
Для управляемых контейнером транзакций WildFly должен знать объем сделки. Я не думаю, что @RequestScoped будет сообщать о любых транзакционных возможностях. – johan