I'm using tomcat jdbc pool (with removeAbandonTimeout = 12mins) with spring. Within a transaction boundary, Spring Tran Manager bounds the connection to a thread. This in turn means the connection got from the pool at the start of the boundary is not returned to the pool till the end of Transaction boundary (commit/rollback). This sounds ok for the conn on the data source on which the tran manager is defined.
A connection created on other data sources that query in a non-transactional manner within the tran boundary(on data source1) is also bounded to the thread and hence not returned to the pool till the tran boundary end.
Question: Given that rollback is not attempted on connections from other datasources in the transaction manager, why should spring bound a connection to the thread and deprive other threads from re-using the connection?