頭を整理。

  • ConnectionPool自体がcloseされたりExceptionが発生したりしなければ、物理的なConnectionがcloseされるのはPoolされているConnectionのタイムアウトがおきるときのみ。
  • TransactionがActive(存在し未完了状態)であればこれに関連付けられたConnectionは決してPoolに戻されない。
  • すなわち、TransactionがActiveであるとき物理的なConnectionがcloseされることはない。

でも疑問も

  • TransactionImpl#delistResource(XAResource)は使われてないけどどういうときに呼ばれるんだろ。