カスタムの「接続」クラスを使用してJCAアダプタを構築しています。私が見たすべての例では、接続クラスに「void close()」を配置することになっています。次に、カスタム接続クラスを使用しているときに、finallyブロックにclose()を呼び出す必要があります。
私は、開発者がfinallyブロックに近づくことを覚えているとは本当に信じていません。また、EntityManagerで「close()」を呼び出す必要はありません。コンテナは、EntityManagerの開閉を自動的に管理します。
コンテナにJCAアダプタへの接続を自動的に閉じる方法はありますか?finalize()をオーバーライドしようとしましたが、JVMが接続のクリーンアップを決定するまでに非常に長い時間がかかる可能性があります。
または、finallyブロックでclose()なしでカスタム接続クラスが使用されたすべての場所でfindbugsのプラグインを作成してIDを取得する方法を誰かが知っていれば、おそらくそれで大丈夫でしょう。