Use of ChainedTransactionManager forces all TransactionManagers to participate
I realize this is probably not a 100% supported solution since it's background seems somewhat shady. With the ChainedTransactionManager, all of the child PlatformTransactionManagers are registered with any call to getTransaction, even if they do not end up being used. With a Hibernate transaction manager, this means that it consumes a connection from the DB.
We're trying to use this class to manage rollbacks of messages consumed from JMS and the database. A small percentage of these messages will involve one particular database (database A), but most do not. However, because of the way this class behaves we are holding open connections to A for every message consumed.
Has anyone else encountered this before and perhaps come up with a way to avoid the issue?