| This comes from "bad configuration" on the application part. Specifically we are not seeing:
- The JtaPlatform
- The JTA version of TransactionCoordinatorBuilder
Essentially Hibernate thinks it is part of an environment using JDBC transactions. Part of this is a failure for WildFly to export the org.hibernate.engine.transaction.jta.platform.spi.JtaPlatformProvider as developed as discussed between you and me Scott Marlow previously. Which means that applications have to define this themselves in their config.. to use the JBoss AS JtaPlatform. Which means that an application using Hibernate deployed to WildFly has to always specify:
- hibernate.transaction.jta.platform=JBossAS
- hibernate.transaction.coordinator_class=jta
Note that in JPA deployments, hibernate.transaction.coordinator_class is determined by javax.persistence.spi.PersistenceUnitTransactionType. The WildFly test just did not have these configuration values. But it should have. Scott Marlow you mentioned before that this test has never had these values... yes that is maybe true, but it was never really supported to be performing DDL within a transaction. Your test does that, and if you think we should continue to support in-transaction execution of DDL statements than DDL execution needs to understand the "transaction environment" to properly do what it needs to do. The hibernate.transaction.coordinator_class piece is not that big of a deal to me tbh; its pretty reasonable and aligns with JPA (PersistenceUnitTransactionType). It's the JtaPlatform part that stinks imo. |