問題タブ [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.

0 投票する
2 に答える
3054 参照

hibernate - Hibernate > 3.3 および c3p0

c3p0 はもはや Hibernate にバンドルされていないようです (バージョン > 3.3 の時点で、私は Hibernate 3.6.0 を使用しています)、c3p0 を Hibernate と統合する方法を知りたいです。

明らかに古いアプローチ

クラス C3P0ConnectionProvider が Hibernate によって提供されなくなったため、もう機能していないようです。これを自分でビルドする必要がありますか、それとも hibernate-c3p0-3.3.x.jar を統合しても安全ですか?

注:私は裸のHibernateを使用しており、Springなどは使用していません.

0 投票する
2 に答える
743 参照

connection-pooling - データベース接続プールを選択します

アプリケーションでdb接続プールを使用したいのですが、dbcp、c3p0、proxoolなどの非常に多くのオープンサワープールがあります。

私はどちらが良いかわかりません、誰かがそれらについていくつかの経験がありますか?

0 投票する
2 に答える
1012 参照

java - jmx で c3po dataSourceName を公開する

c3p0 をその dataSourceName で jmx に登録する方法はありますか? 現在、私の c3p0 データは、dataSourceName を持っていても、jmx に登録するためのランダムな名前を作成します。たとえば、春の私の構成は次のとおりです。

0 投票する
1 に答える
3288 参照

java - ソースからC3p0をビルドするときにエラーが発生する

ソース(v 0.9.1.2)をダウンロードし、最初にコマンドラインから、次にIDE内でビルドしてみました。

問題はbuild.propertiesファイルにクラスパスを設定することだと思います。これが私の現在のクラスパスです。もちろん、私はここでさまざまなことを試しましたが、すべて同じ結果が得られます。

私が得るエラーは次のとおりです。

編集:Java5でビルドするときに発生するエラーは次のとおりです。

0 投票する
1 に答える
729 参照

java - c3p0 の最大接続数が Linux で機能しない

O/R マッピングに休止状態を使用する Java アプリケーションがあり、休止状態に同梱されている c3p0 接続プールも使用しています。DBはオラクルです。

これは私の中にありますhibernate.cfg.xml

これは、休止状態セッションを取得する方法です。

しかしSELECT * FROM V$SESSION WHERE machine='xxx';、Oracle で実行すると、接続数が 20 に達し、max_size.

最大接続数は Linux 環境では機能しませんが、Unix と Windows では機能します。微調整が必​​要な Linux の設定はありますか?

また、以前に 20 を設定したように、アプリケーションのキャッシュがどこかにあるのではないかと疑ってmax_sizeいます。Tomcat 5.5 でアプリケーションを実行しています。しかし、Tomcat にそのようなアプリケーション キャッシュがあることは知りません。

別の情報: Linux 2.6.9-34.ELsmp を実行しています。Red Hat Enterprise Linux AS release 4 (Nahant Update 3)

ありがとう。

0 投票する
2 に答える
1526 参照

mysql - C3P0 接続プール テスターが呼び出されない

C3P0接続プールテスターを使用して、接続がMySQLにアップまたはダウンしているかどうかを確認しようとしました。パスワードが正しければ機能します。ただし、パスワードは変更できるため、MySQL への接続がないことをユーザーに知らせる必要があります。

buildSessionFactory()接続テスターが起動しない理由を知りたいです。

ハイバネート + C3P0 を使用しました。

ここに私の設定があります:

設定:

私のコードにも例外はありません。私が言おうとしているのは、何らかの理由で MySQL DB がダウンしていて、buildSessionFactory()失敗していないということです。フォーラムで読んだように、これは正しいシナリオです。しかし、タイムアウトごとに実行して接続ステータスをチェックし、DB への接続が確立されているかどうかを通知する C3P0 接続テスターを作成しました。しかし、この場合、テスターは何らかの理由で呼び出されません。なぜそれが起こるのかを理解したい。

ドキュメントには、この状況について何も書かれていません。これがバグであり、テスターを開始する必要がある場合は、問題を修正する必要があります。

これが私が話していることです。

0 投票する
1 に答える
13373 参照

java - Tomcat JDBC 接続プール VS c3p0 接続プール

最近、この接続プールの実装に出会いました。

http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html

とても興味深いと思います。

誰かがこれを試しましたか?c3p0 のような自動再試行とステートメント キャッシュをサポートしていないことを除けば、見栄えは良いと思います。

c3p0と比較して誰か知っていますか?

これまで c3p0 を使用していましたが、マルチスレッド環境での接続処理に問題があることがわかりました。アプリケーションスレッドの数と比較して、あまりにも多くの接続を開きます。

ありがとう。

0 投票する
0 に答える
1545 参照

hibernate - 異なるデータソースでの c3p0 プールの初期化

、みなさん、良い一日を!

アプリケーションで複数のデータベースを使用する必要がありました。春の構成ファイルでは、2 つのデータ ソースをそれぞれ別のデータベースに構成します。

そこで、すべてのデータソースを構成してから、Spring アプリケーションのコンテキストの読み込みを確認する簡単なテストを作成しました。そのテストを開始すると、非常に長い時間 (110 秒) 実行されます。ログを見ると、プールが 4 回初期化されていることがわかります。

データソースを削除しようとしました - 現在、ログ ファイルに 2 つのプールの初期化があり、最初の初期化には 4 ~ 6 秒かかり、2 番目の初期化には約 30 ~ 32 秒かかりました...

誰かが私にそのパフォーマンスの問題を解決する方法を教えてもらえますか?

PS Mysql db 5.1、c3p0 バージョン 0.9.1.2 (0.9.2 も試しました)、Spring 3.0.4、Hibernate 3.6

編集: 私のテストでは、アプリケーション コンテキストが 2 回開始されたことがわかりました。そのため、プールが 2 回ではなく 4 回初期化されたのはそのためだと思いますが、それでも最初のデータソースのプールが 8 秒で初期化されるため、パフォーマンスの問題があります。しかし、2番目のデータソースの初期化時間のプールは30〜32秒です...

0 投票する
2 に答える
3831 参照

java - C3P0 + MySQL : 通信パケットの読み取り中にエラーが発生しました

多くの人が経験したエラーは、次のメッセージに関連しています。

これは MySQL ログにあります。私の場合、データベースは、ドライバーとよく知られている C3P0 プールを使用して Java クライアントを介してローカルにアクセスされます。com.mysql.jdbc.Driver私の MySQL サーバーは非常に多くの接続を受け入れるように構成されており、max_allowed_pa​​cket の値は 64M に設定されています。my.cnf ファイル (MySQL 構成) からの抜粋を次に示します。

私のデータベースのテーブルUserには、次の単純な構造があります。

mysqlクライアントを使用してそのテーブルの値を取得するとINSERT(つまりmysql -u root -p)、ログに警告が表示されません。ただし、同じ Java 側を試すと、前述の警告がログに何度も表示されます。したがって、Java 側では、私の接続は次のように構成された C3P0 接続プールから引き出されます。

ステートメントは最初に準備されます。

次にパラメータ化します:

そして実行しました:

次に、準備されたステートメントを閉じます。

SQL 接続が閉じられます。

全体的な手順は (私には) 合法であるように思われます。http://dev.mysql.com/doc/refman/5.0/en/communication-errors.htmlの MySQL マニュアルによると、この警告は次のことを意味している可能性があります。

クライアント プログラムは、終了する前に mysql_close() を呼び出しませんでした。

またはその:

クライアント プログラムは、データ転送の途中で突然終了しました。

私のアプリケーションの目的のために、C3P​​0 を使用して、200 以上の並列スレッドを使用してこのデータベースに書き込みおよび読み取りを行いました。データが実際にデータベースに転送され、データベースから正常に取得されることを確認している間、メモリ リークはありません。他の誰かが同様の経験をしていますか?

最後に、MySQL のバージョンと、トラブルシューティングに役立つその他の情報を含めます。