Hi,
I have merged the initial version of our new CachedConnectionManager component (
https://github.com/ironjacamar/ironjacamar/commit/0fdc751f212d02232dde8dc8a468e6b23ef47ff2).
The CachedConnectionManager pretty much follows what we had in the 1.x branches, with a cleanup interface as we don't need any separation in that area.
The new implementation is capable of merging connection handles from multiple ConnectionListener instances upon transaction start, which reduces the physical connections used and thereby freeing up the pool. The whole CachedConnectionManager thing is still a broken concept, because applications keep obtaining connections before a transaction is started, and still expects them to be enlisted.
For now I have kept the listConnections() functionality, but we should seriously consider moving this functionality to the janitor component attached to the pool, once we get to that point.
The commit also contains some test cases which verifies the deferred enlistment scenarios, and auto close of connections - another thing applications can't figure out...
Feedback, questions, comments... most welcome !