私は奇妙な問題に直面しており、c3p0 に関連しているようです。互いにやり取りする同じ Java vm でアプリの 2 つのインスタンスを開始しています。いくつかの操作の後、「APPARENT DEADLOCK」メッセージがログに表示されます。
異なるセッション ファクトリ インスタンスを使用していますが、両方のアプリ インスタンスが同じ接続プールを使用しているように感じます。
C3P0 に何らかの「シングルトン マジック」が関与している可能性はありますか?
私の知る限り、関与するシングルトンはありません。各データソース インスタンスは、個別に構成/インスタンス化/管理されます。
さらに、複数のセッション ファクトリから同じデータ ソースを使用しても問題は発生しません (適切な構成、適切な数の接続などを前提としていますが、それはここでは重要ではありません)。
ここで説明されているように、ヘルパー スレッドの数を増やし、maxAdministrativeTaskTime をゼロ以外の値に設定してみましたか?