【发布时间】:2015-11-16 18:55:46
【问题描述】:
我在 Wildfly 8.2 中有一个 XA 数据源设置。一切正常,但是当我打电话时:
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 会建议任何事务功能。
标签: jakarta-ee jboss transactions wildfly xa