問題タブ [c3p0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Hibernate DB 接続プーラー c3p0 に問題があります
前回の投稿以来、提案されたすべての変更を行いましたが、この問題はまだ私を悩ませています. ここに私が得るエラーがあります:
ここに私の hibernate.cfg.xml があります
および c3p0.properties
java - JPA(および/またはHibernate)-接続および/またはクエリのタイムアウトしきい値を設定するにはどうすればよいですか?
JPAがタイムアウトし、構成された時間が経過すると例外をスローするようにプロジェクトを構成する方法を理解しようとしています。これを実現したい状況は2つあります。
- JPAがデータベースに接続することさえできない場合
- JPAクエリが結果セットを返すのにタイムアウトしきい値よりも長い時間がかかる場合
これらの2つのシナリオを個別に構成できるか(それぞれに異なるタイムアウトしきい値)、または両方に1つのしきい値を使用できるかどうかはわかりません。
私のプロジェクトは現在次のように設定されています。
- JPA2.0仕様へのコーディング
- JPA実装としてHibernate3.5.6を使用する
- Hibernateでのc3p0接続プールの使用
- 構成ファイルの使用
persistence.xml
(必要な場合にのみHibernate固有のプロパティ値を使用) - Hibernate固有の構成ファイルを使用しない
hibernate - persistence.xml の jpa の C3p0 接続プーリングが機能していませんか?
見つけたすべての例に従って c3p0 を構成しようとした後も、JDBC タイムアウトが発生します。JPA、Hibernate、Tomcat、MySQL [AWS RDS] を使用しています。以下は、persistence.xml のスニペットです。
そしてエラーログ:
mysql - 〜39分後に閉じられているMySQL接続をデバッグする最良の方法は?
私は休止状態の3.3、c3p0、MySql 5.1、およびSpringを持っています。私のサービス呼び出しのMySQL接続は、約39分後に一貫して閉じられています。私のサービスコールの自然な実行時間は約5時間です。
39分の上限を回避するために、さまざまなc3p0構成などを変更してみました。運がない。
これをログに記録またはトラブルシューティングするためのより直接的で体系的な方法はありますか?つまり、接続が閉じられている理由と、誰が、どのレイヤーで接続を閉じているのかを知ることができますか?
更新:スタックトレース
java - c3p0接続を監視する方法
JBoss warでHibernateを使用しており、接続プールにc3p0を使用しています。どちらも、クラスパスのhibernate.cfg.xml構成ファイル内で構成されています。
server.logが接続プールに関する興味深い情報を含む行を生成するのを見てきました。
DEBUG [com.mchange.v2.resourcepool.BasicResourcePool] trace com.mchange.v2.resourcepool.BasicResourcePool@63f5e4b6 [管理対象:10、未使用:9、除外:0]
私の監視プール(私はnagiosを使用しています)については、ログファイルにあるように、使用されている接続の数と空きの数を示すJSPを提供したいと思います。
管理された未使用の接続がいくつあるかをc3p0に尋ねるにはどうすればよいですか?
mysql - Hibernate c3p0 構成パラメーターが実行時に影響を受けない
私はc3p0-0.9.1.2.jarとhibernate 3.2.1を使用しています。以下は休止状態の設定です。
しかし、maxStatementsPerConnection、testConnectionOnCheckout、preferredTestQuery などのパラメーターが実行時に影響しているとは思いません。これらのパラメーターに対して何か他のことをする必要がありますか? これが私がログに記録するものです。
INFO 2010-11-06 19:04:37,364 c3p0 プールを初期化しています... com.mchange.v2.c3p0.PoolBackedDataSource@e2da87d1 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@412cca1a [acquireIncrement -> 2, acquireRetryAttempts -> 30、acquireRetryDelay -> 1000、autoCommitOnClose -> false、automaticTestTable -> null、breakAfterAcquireFailure -> false、checkoutTimeout -> 0、connectionCustomizerClassName -> null、connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester、debugUnreturnedConnectionStackTraces -> false、factoryClassLocation -> null、forceIgnoreUnresolvedTransactions -> false、identityToken -> z8kfsx8c99kx7g8xqvs4|87400、idleConnectionTestPeriod -> 1500、initialPoolSize -> 4、maxAdministrativeTaskTime -> 0、maxConnectionAge -> 0、maxIdleTime ->1800、maxIdleTimeExcessConnections -> 0、maxPoolSize -> 10、maxStatements -> 200、maxStatementsPerConnection -> 0、minPoolSize -> 4、nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@9d074b3f [説明 -> null、driverClass -> null、factoryClassLocation -> null、identityToken -> z8kfsx8c99kx7g8xqvs4|b245dc、jdbcUrl -> jdbc:mysql://localhost:3306/oDB、プロパティ -> {autoReconnect=true、user= *、パスワード=* , zeroDateTimeBehavior=convertToNull} ], preferredTestQuery -> null , propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false , unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, factoryClassLocation -> null, identityToken -> z8kfsx8c99kx7g8xqvs4|93c5e7, numHelperThreads -> 3 ]
前もって感謝します。強羅
hibernate - c3p0 構成を持つ複数のアプリケーションで警告が表示される
こんにちは
、1 つの tomcat の下に 2 つの Web アプリケーションがあります。どちらも休止状態 3.2.1 と c3p0 0.9.1.2 を使用しています。2 番目のアプリケーションがデプロイされる間、常に次の警告メッセージが表示されます。
Tomcat: apache-tomcat-6.0.28
WARN 2010-11-06 19:04:37,270 C3P0Registry mbean は既に登録されています。これはおそらく、c3p0 を使用するアプリケーションがアンデプロイされたことを意味しますが、アンデプロイ前にすべての PooledDataSource が閉じられたわけではありません。これにより、時間の経過とともにリソース リークが発生する可能性があります。すべての PooledDataSources を閉じてください。
この点で助けてください。
前もってありがとう
ゴウラ
java - c3p0 ComboPooledDataSource を拡張する方法
OK、次のようなデータベース接続用のserver.xmlにTomcat 5.5のリソースがあります。
上記の ComboPooledDataSource を拡張しようとした人はいますか? 問題は、データベースのパスワードがクリア テキストであることです。最初にパスワードを暗号化し、暗号化されたキーを server.xml に配置することをお勧めします。復号化ユーティリティがあるので、データベースに接続する前にキーを復号化できます。
org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory の問題の解決例を見つけましたが、この接続プールを使用していません。C3P0を使用しています。C3P0でこれを試した人はいますか?
java - データベース接続プーリング ライブラリの最適な選択は何ですか? (c3p0問題)
hirbernate を使用して高負荷の Java アプリケーションを使用しています。また、以前は接続プールDBCPとして使用していましたが、接続が失われるという問題がありました。私はc3p0に切り替えました。しかし、今ではスレッドがブロックされることがありますが、その理由はわかりません。ここみたいに:
' スタック トレース ダンプは、このスレッドが他のすべてのスレッドをロック <0x00007fa7286d9728> でブロックしていることを示していたため、しばらくするとサーバーが完全にブロックされました。1 つのスレッドが他のすべてのスレッドを長時間ブロックしていた場合、またはこのスレッドで消費された時間が非常に長かった場合、このスレッドの実行時間はわかりませんが、結果として、システムが完全にブロックされ、非常に遅くなりました。私はたくさんグーグルで検索しましたが、この問題を解決する方法がわかりません。接続を閉じてできるだけ早くトレッドを終了するには、プールが必要です。他の接続プールを使用する必要がありますか? 私にとっては、このプール ライブラリが 100% 保存され、デッドロック、ライフロック、飢餓がなく、他のライブラリよりも少し遅いことが絶対に必要です。
助けてくれてありがとう
jetty - Web アプリケーション コンテキストが破棄されたときに Jetty DataSources を閉じる
を使用してmaven-jetty-plugin
、開発モードで Web アプリケーションを実行しています。また、c3p0 JNDI DataSource を構成しますjetty-env.xml
。
これは問題なく動作しますが、webapp の再デプロイ時に接続プールがシャットダウンされていないことに気付きました。c3p0 スレッドがまだ生きているため、PermGen と JDBC 接続リークの両方が発生します。
jetty-env.xml で定義されたリソースを破棄することについての言及は見つかりませんでした。また、プロダクションのセットアップが異なるため、開発専用のフックを入れることもためらっています。
開発時にアプリケーションを再デプロイするときに、接続プールが閉じられていないために発生するリークがないことを確認するにはどうすればよいですか?