6

私が取り組んでいるプロジェクトの接続タイムアウトの問題の修正に取り組んでいます。c3p0 を使用して接続プールを管理し、orm ツールとして休止状態にします。スプリングも使用。

返されない接続があるかどうかを確認するために、c3p0 構成 (c3p0 プロパティではありません) で debugUnreturnedConnectionStackTraces を true に設定しました。

私がしなければならないことは他にありますか?lod4j.properties にも何か追加する必要がありますか、それとも debugUnreturnedConnectionStackTraces を true に設定するだけで十分ですか?

また、c3p0 プロパティで debugUnreturnedConnectionStackTraces を true に設定する必要がありますか?

助けてくれてありがとう

4

2 に答える 2

11

Corey の回答を少し拡張します。

unreturnedConnectionTimeout が正で、debugUnreturnedConnectionStackTraces が true に設定されている場合、返されない例外を生成したスタック トレースは、ロガー「com.mchange.v2.resourcepool.BasicResourcePool」によって INFO レベルでログに記録されます。

多くの場合、すべてのロガーから INFO レベルを超えるものをログに記録するため、これらのスタック トレースはログに表示されます。ただし、それらが表示されない場合は、ロギング構成をチェックして、そのロガーからの INFO のメッセージがフィルタリングされていないことを確認してください。

unreturnedConnectionTimeout も設定されていない場合、debugUnreturnedConnectionStackTraces は何もしないことに注意してください。

見る

http://www.mchange.com/projects/c3p0/#unreturnedConnectionTimeout

http://www.mchange.com/projects/c3p0/#debugUnreturnedConnectionStackTraces

これが役立つことを願っています!

ps これらのプロパティが適切に設定されている限り、これらのプロパティをどのように設定してもかまいません。c3p0 は、プールの開始時に INFO でプール構成をダンプします。ログをチェックして、パラメーターを設定しようとしている場合でも、期待どおりの構成になっていることを確認してください。または、JMX を使用してパラメーターを検査することもできます。

于 2012-08-04T00:22:29.353 に答える
3

個人的には、通常、次の 2 行の両方を hibernate.cfg.xml に追加します。

<property name="hibernate.c3p0.unreturnedConnectionTimeout">60</property>
<property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property>

タイムアウトのデフォルト値は 0 だと思いますが、それがどのように機能するのかわかりません。

于 2012-08-03T16:56:39.597 に答える