問題タブ [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 投票する
3 に答える
1340 参照

java - Java を使用した非ブロック MySQL 更新?

私が取り組んでいるマルチプレイヤー ゲームでは、ゲームの更新スレッドをブロックせずに mysql データベースにイベントを記録して、データベースがビジー状態またはテーブルがロックされている場合に、ゲームが待機中に実行を停止しないようにしたいと考えています。書きます。

これを達成するための最良の方法は何ですか?

データベース接続プールを管理するために c3p0 を使用しています。これまでの私の最善のアイデアは、クエリ更新文字列を同期リストに追加し、独立したスレッドが 100 ミリ秒ごとにリストをチェックし、そこで見つかったクエリを実行することです。

0 投票する
3 に答える
20621 参照

oracle - java.sql.SQLException: サポートされていない機能

ORM には JPA(hibernate) を使用し、接続プーリングには c3po を使用しています。すべての CRUD 操作を実行できますが、データへのアクセス中に次のエラーが発生します。

ツールは次のとおりです: Hibernate 3.2.1、Oracle 10g、ojdbc14、接続プール: c3p0-0.9。

そしてスタックトレース:

これに関するヘルプは大歓迎です。

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

mysql - Hibernate-mysql-c3p0での接続ドロップの問題

これは私がウェブ全体で見た問題です。今まで同じ修正がなかったので、もう一度取り上げます。

com.mysql.jdbc.Driver org.hibernate.dialect.MySQLDialect

接続プールは正常に発生しています。日中は問題ありませんが、一晩中アイドル状態にしておくと、翌日、接続が切断されたというエラーが発生します。

パブリッククラスHibernateUtil{

}

上記はセッションファクトリの私のコードです。そして、私は選択した操作しか持っていません。

そして、以下は私の選択クエリを実行するために最も頻繁に使用されるメソッドです。私が理解していないトリッキーなことの1つは、findByIdメソッドで、このコード行getSession()。beginTransaction();を使用していることです。それがないと、これはトランザクションなしでは起こり得ないというエラーが発生します。しかし、私はこの取引をどこにも閉じていません。そして、selectステートメントには適用できないコミットまたはロールバック(私が知る限り)を除いて、トランザクションを閉じる方法はありません。

public T findById(ID id、boolean lock)throws HibernateException、DAOException {log.debug( "findNyId invoke with ID =" + id + "and lock =" + lock); Tエンティティ; getSession()。beginTransaction();

誰かが私に何ができるか提案してもらえますか?私は、グーグル、stackoverlow、または休止状態のフォーラムで利用可能なほぼすべてのソリューションを試しましたが、役に立ちませんでした。(そして、mysqlでwait_timeoutを増やすことは、私の場合は有効なオプションではありません)。

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

postgresql - c3p0 ステートメント プーリングを有効にする必要がありますか?

java6/hibernate/c3p0/postgresql スタックを実行しています。JDBC ドライバーは 8.4-701.jdbc3 です。

プリペアド ステートメントについていくつか質問があります。プリペアド ステートメントに関する優れたドキュメントを読みました

しかし、postgresql で c3p0 を構成する方法についてはまだ疑問があります。

現時点では

私の理解では、準備されたステートメントとステートメントプーリングは2つの異なるものです。

私たちの休止状態スタックは準備済みステートメントを使用します。Postgresql は実行計画をキャッシュしています。次に同じステートメントが使用されると、postgresql は実行計画を再利用します。これにより、DB 内でステートメントを計画する時間が節約されます。

さらに、c3p0 は「java.sql.PreparedStatement」の Java インスタンスをキャッシュできます。これは、Java オブジェクトをキャッシュしていることを意味します。したがって、
c3p0.maxStatementsPerConnection = 100 を使用すると、最大 100 個の異なる
オブジェクトがキャッシュされます。オブジェクトを作成する時間を節約できますが、これは postgresql データベースとその準備済みステートメントとは関係ありません。

右?

約 100 の異なるステートメントを使用するため、c3p0.maxStatementsPerConnection = 100 を設定します。

しかし、c3p0 のドキュメントには、c3p0 の既知の欠点があると書かれています

ステートメント プーリングのオーバーヘッドが高すぎます。PreparedStatements の重要な前処理を実行しないドライバーの場合、プーリングのオーバーヘッドは節約を上回ります。そのため、ステートメント プーリングはデフォルトでオフになっています。ドライバーが PreparedStatements を前処理する場合、特に RDBMS を使用して IPC を介して行う場合は、Statement プールをオンにすることでパフォーマンスが大幅に向上する可能性があります。(これを行うには、構成プロパティ maxStatements または maxStatementsPerConnection をゼ​​ロより大きい値に設定します)。

c3p0 と Postgresql で maxStatementsPerConnection を有効にするのは合理的ですか? それをアクティブにする本当の利点はありますか?

よろしくジャニング

0 投票する
6 に答える
32106 参照

java - Java c3p0接続プールライブラリへのログインをオフにするにはどうすればよいですか?

やあ、私はデータベース接続プールのためにc3p0を使い始めたばかりです。現在、log4j出力に接続しています。c3p0に対してのみログオフまたは少なくともSEVEREレベルに設定するにはどうすればよいですか?プロパティファイルを微調整しようとしましたが、正しく取得されているかどうかわかりません。

それをオフにする最善の方法について何かアイデアはありますか?

ありがとう

更新:これはlog4j.propertiesファイルで機能するようです

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

hibernate - Hibernate を使用した C3P0 の春の構成?

JPA プロバイダーとして Hibernate を使用する Spring/JPA アプリケーションがあります。次の方法でSpringでC3P0データソースを構成しました。

次に、Spring エンティティ マネージャー ファクトリでこのデータ ソースを次のように指定しました。

しかし、最近、maven アーティファクトをブラウズしているときに「hibernate-c3p0」であることに気付きました。これは何ですか?これは私が使用する必要があるものですか?または、これは既に適切に構成されていますか?

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

hibernate - AtomikosのロールバックはJPA永続コンテキストをクリアしませんか?

Spring / JPA / Hibernateアプリケーションを使用しており、H2およびMySQLに対するJunit統合テストに合格させようとしています。現在、トランザクションにはAtomikosを使用し、接続プールにはC3P0を使用しています。

私の最善の努力にもかかわらず、私のDAO統合は、テストの1つがorg.hibernate.NonUniqueObjectExceptionで失敗しています。失敗したテストでは、「new」演算子を使用してオブジェクトを作成し、IDを設定して、persistを呼び出します。

前のテストメソッドでは、同じことを行います(createNewUser()は、毎回同じIDを持つオブジェクトを作成するヘルパーメソッドです)。同じIDを持つ2番目のオブジェクトを作成して永続化することが原因であると確信していますが、各テストメソッドは独自のトランザクションであり、作成したオブジェクトはプライベートテストメソッド変数にバインドされています。ログでは、SpringTestとAtomikosが各テストメソッドに関連付けられたトランザクションをロールバックしていることもわかります。

ロールバックによって永続コンテキストもクリアされたと思います。思い切って、欠陥のあるテストメソッドの最初にdao.clear()の呼び出しを追加したところ、問題は解決しました。したがって、ロールバックは永続コンテキストをクリアしませんか?そうでない場合は、誰がしますか?

私のEntityManagerFactory構成は次のとおりです。

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

java - データベース接続タイムアウト

この問題についてインターネットで非常に多くの記事を読みましたが、明確な解決策があるようには見えません。データベースのタイムアウトが発生する理由について、誰かが明確な答えを教えてください。このアプリは、Tomcat 5.5 サーバーでホストされている GWT アプリです。私は春を使用し、セッション ファクトリは次のように applicationContext.xml に作成されます。

翌日まですべて正常に動作します。

私は非常に多くの異なるものを読みました(どれもうまくいきませんでした)、助けてください

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

hibernate - Hibernate/Spring フレームワークの TestConnectionOnCheckin c3p0 構成プロパティ

c3p0 の testConnectionOnCheckin プロパティを設定したいと思います。

ただし、休止状態のエンティティ マネージャー Bean 内で c3p0 データソースが作成されているため、これを行うのに問題があります。

<prop key...1> は、休止状態で c3p0 データ ソースを作成するための休止状態の構成キーです。

ただし、c3p0 データソースの testConnectionsOnCheckin プロパティを設定する hibernate 構成キーが見つかりません。

そのような鍵はありますか?そうでない場合は、entityManagers データソースを直接設定する必要がありますか?それを行う前に知っておくべきトリックはありますか?

注: testConnectionsOnCheckout は実行可能なオプションではなく、対応する hibernate 構成キーがあります。

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

java - Tomcat 6、休止状態、oracle 11 ログオンが拒否されました

eclipse 3.5、wicket、spring、hibernate、oracle 11 データベース、および Tomcat 6 でのプロジェクト (書籍「wicket in action」のサンプル)。このプロジェクトでは、データベースに接続できません。誰かがそれを修正するのを助けることができますか? それはログです:

これは設定ファイルです:

jdbc をテストするテスト コンソール アプリケーションを作成しましたが、うまく動作します。