2016-03-21 31 views
0

データソースプーリングマネージャとしてc3p0を使用してTomcat7でアプリケーションを実行します。私は接続カスタマイザを追加して、各データソースを取得/チェックアウト/ログアウトしました。c3p0プールされた接続ファントム接続

マイログ(catalina.outは)ので、エントリ数が含まれています

買収[email protected] [z8kfsx9f16wfz9m1p2ghf4 | 729e8277] 買収com.cloudera.impala.jdbc41.ImpalaJDBC41Connection @ 217a2a9 [z8kfsx9f16wfz9m1p2ghf4 | 729e8277] が[email protected]

をチェックアウトし[email protected] にチェック私はまたのようなSQL例外の数に気づい:

java.sql.SQLException:一部のリソースが[email protected] (com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:571))を閉じるときに正しく閉じられませんでした。 COMでcom.mchange.v2.c3p0.impl.C3P0PooledConnectionPool $ 1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470) でcom.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234) で) com.mchange.v2.async.ThreadPoolAsynchronousRunner $ PoolThread.run(ThreadPoolAsynchronousRunner.java:547)で.mchange.v2.resourcepool.BasicResourcePool $ 1DestroyResourceTask.run(BasicResourcePool.java:964)

私はログを検索

ファイルfまたは "6c5ca37c"の場合、接続がいつ取得されたかを示す行は表示されません。ログを解析すると、「破棄」されたすべての接続が「破棄」されたが、SQL例外で表示されるすべての接続には対応する取得された行がないことがわかります

すべての洞察が役立ちます。

答えて

0

遅い応答に申し訳ありません。私は最近、グリッドから離れています。

com.mchange.v2.c3p0.impl.NewPooledConnectionは、com.cloudera.impala.jdbc41.ImpalaJDBC41Connectionとは別のオブジェクトです。最初のラップと2番目のインスタンスがラップされますが、一貫性のある識別ハッシュコード値(デフォルトのtoString()メソッドの16進数部分になります)はありません。

あなた自身が見ている例外はそれほど問題ではありません。 c3p0は閉鎖することに関して非常に神経症であり、例えばResultSetまたはStatementclose() edであると確信が持てない場合は、close()を試します。彼らが何らかの形で既に無効化されている場合、このメッセージにつながる例外をclose()にスローする可能性があります。

私はこのスタックトレースの前にログ内の他の箇所をチェックして、近いうちに例外が発生する前に何かが間違っていたかどうかを確認します。以前の問題がある場合は、より有益な情報になる可能性があります。可能であれば、アプリケーションがclose() ResultSetとStatementsに注意していることを確認したいと思います。それ以外の場合は、アプリケーションが正常に実行されている場合、私はこれらのときどきのメッセージについては心配しません。 c3p0は、そのConnectionに対して開いたままにしておくことができる各リソースを閉じようとした後で、Connectionにclose()を呼び出します。補助リソースのclose()を試みても、c3p0がConnectionのbest-attempt close()を妨げることはありません。したがって、JDBC側で何かがひどく壊れていない限り(conn.close()は失敗します)、リソースリークはありません。

+0

2つの異なる接続オブジェクト(1つはラッパーで、もう1つはラッパー)です。また、私は閉鎖されていない文が問題になっていることに疑念を抱いていました。それは、何も起こっていないことを指摘したログには何もなかったということだけでした。(私はあなたの応答を受け入れています。おそらく見つからないことは、本当はファントムではない。 –