18 | 单连接事务与受管事务实验卡 | 2026-10-04 已有入口:examples/javaee-enterprise/scenarios/09-lab-procurement.sh(正常采购故事);scenarios/18-lab-rollback.sh(外层 @Transactional 故障)。两者只能在 loopback + 隔离 javaee_lab + JAVAEE_DEMO_MODE=true 执行;准备/部署见 examples/javaee-enterprise/README.md,口令只放进本地环境。 复跑(已有代码,执行前确认数据库隔离): cd examples/javaee-enterprise ../hibernate-lab/mvnw -B -ntp -f "$PWD/pom.xml" clean verify JAVAEE_PORT=9085 JAVAEE_DEMO_MODE=true JAVAEE_LAB_USER=javaee_lab JAVAEE_LAB_PASSWORD="$JAVAEE_LAB_PASSWORD" bash scenarios/09-lab-procurement.sh JAVAEE_PORT=9085 JAVAEE_DEMO_MODE=true JAVAEE_LAB_USER=javaee_lab JAVAEE_LAB_PASSWORD="$JAVAEE_LAB_PASSWORD" bash scenarios/18-lab-rollback.sh 已有历史证据:writing-plans/javaee-enterprise/verification/20261004T063400Z-pg16-jta-rollback/RUN.md;HTTP 500、随机租户已提交申请 0、申请和明细序列推进、退出码 0。不是本篇新实测;不能用序列推进证明已提交行。单连接独立 JDBC 本地事务、UserTransaction、XA/提交结果未知:NOT_RUN。新的实验应保存 WAR/场景哈希、数据库和服务器版本、命令退出码、HTTP 响应、SQL 终态、序列值以及故障注入位置。 两种所有权对照:独立 JDBC 在同一 Connection setAutoCommit(false)/commit()/rollback();受管 DataSource 入口 @Transactional,DAO 不调用 commit()。故意把 DAO 拆为不同非受管连接属于反例,只在专用副本运行;不改本仓库累计工程。