While analyzing some performance problems in Wildfly 10.1 in high pressure scenarios I came to the conclusion, that sometimes parallel HTTP threads block each other.
The reason seemed to be that in some HTTP requests we execute two JPQL Queries (actually a delete and a select) and sometimes the second of the two simply didn't get a JDBC connection from the pool. (We use IBM DB2, if that is important...) That seemed rather ridiculous as the first statement already got a connection.
After reading the Hibernate docs, I see that the default for hibernate.connection.release_mode is after_statement and that after_transaction is not recommended for JTA apps...
So... I have a few questions now:
after_statement ever make sense? (unless you have auto_comit on of course...)after_transaction in JTA apps?after_transaction should fix the described issue?Any help is appreciated!