On Tue, 2011-10-18 at 21:28 +0530, Jaikiran Pai wrote:
While looking into a test failure I noticed that currently user
applications can end up leaking transactions (associated with the
invocation thread):
Servlet {
doGet() {
UserTransaction.begin();
doSomeOp();
fail();
// no tx rollback/commit
}
}
Subsequent transactions on that thread can lead to failures and other
sorts of issues. Looking back at previous versions of AS, we had a valve
http://anonsvn.jboss.org/repos/jbossas/trunk/tomcat/src/main/java/org/jbo...
which used to cleanup (and log an error) about the leaking transactions.
Do we want something similar for AS7? Also, are there other "entry
points" (like servlets for web requests) where such leaks can happen and
needs to be taken care off?
JPA has automatic tracking of this sort of things using a valve (and
added only when needed).
For the insignificant amount of people that will do manual transactions
and can't be bothered to code properly, everyone gets to pay the cost of
transaction tracking for all requests to the web container, so I am
against this feature.
I remember being flamed pretty badly for daring disabling this "nice"
valve by default in AS 6 :) Hopefully it will go better this time.
--
Remy Maucherat <rmaucher(a)redhat.com>
Red Hat Inc