問題タブ [jdbc-pool]
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 - Tomcat 8 アプリケーションで複数の接続プールを使用する際の命名エラー
組み込みの Tomcat 接続プールを使用するアプリケーションがあり、ほとんどの部分で動作します。別のプールを使用して、同じデータベースから別の接続セットを取得しようとすると問題が発生しますが、別のユーザー名/パスワードから取得します (これは、2 つのユーザー名を使用してテーブルと関数の異なる名前空間にアクセスする Oracle データベースです)。
最初のプールは受け入れられますが、2 番目のプールではこのエラーが発生します
これが私の構成です:
サーバー.xml
context.xml
tomcat - tomcat dbcp プールで接続を追跡/ログに記録し、プールに接続を返さないコードを検出する方法
大規模なアプリケーションのどこかに、接続プールに接続を返さないコードがあります。その結果、プールはすぐに最大接続数に達します。
これは、放棄された接続を削除するように設定することで回避できますが、パフォーマンスが低下します。
tomcat dbcp でログを有効にして、接続が借用され返されたときに表示されるようにするにはどうすればよいですか?
java - 次のコードによって作成された DBCP オブジェクトは閉じられませんでした
アプリケーションでDBへの接続が閉じられていないという問題があります。私はすべてを試していたので、DBCP を試してみました。
問題を再現する手順は次のとおりです。
1) Windows にインストールしました:
- きれいな apache-tomcat-7.0.59
- Java 1.7.0_75
2) server.xml を変更し、DB を指すリソースを 1 つ追加しました
3) ojdbc6_g.jar を tomcat/lib ディレクトリに追加しました
4)次に、アプリケーションを作成してデプロイしました
そして、1つのテストサーブレットで
そしてサーブレットクラスは
Tomcat サーバーには他のカスタマイズはありません。
ログは 20 回まではきれいに見えます。
放棄されたタイムアウトの後、Tomcat のコンソールは、DBCP が閉じられていないというメッセージでいっぱいになります。
誰かがこの問題を解決できますか? 現在、ロジックはありません。DBCP と DataSource 経由の接続のみで戦っています。接続を閉じていることは確かです。それはJavaコードで明らかです。
接続が閉じられないのはなぜですか? 助けてください!
よろしくお願いいたします。お時間を割いてご協力いただきありがとうございます。
マーティン・M.
mysql - karaf + pax-jdbc 接続プールが制限に達しました
karaf の pax-jdbc のプール接続に問題があります。blueprint.xml を介して Mysql DataSource (DS) をプロジェクトに挿入しようとしています。テストのために、DS を挿入する karaf コマンドを作成しました。 karaf コマンド クラスを開き、その接続でクエリを実行します。問題はありませんが、コマンドを何度も実行すると、実行ごとに DS の新しいインスタンスが作成され、プール接続が MySQL への新しい接続を開くことができません。これは、プールが制限に達したためです。
このリンクでコードを github にアップロードしました: https://github.com/christmo/karaf-pax-jdbc。このプロジェクトでエラーが見つかった場合は、プル リクエストを送信できます。
このプロジェクトをテストするには、次のことができます。
このコマンド「mysql-connection」を 9 回実行すると、karaf のプロンプトがフリーズし、実行を中断すると、次の例外が発生する可能性があります。
java.sql.SQLException: 接続を取得できません。組織の com.twim.OrmCommand.execute(OrmCommand.java:53) の org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:146) で一般的なエラーが発生しました。 apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:83) at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:67) at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:87) at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480) at org. org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406) org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) org.apache.felix.gogo.runtime. org.apache.felix.gogo.runtime.Closure の Closure.execute(Closure.java:182)。org.apache.karaf.shell.impl.console.ConsoleSessionImpl.run(ConsoleSessionImpl.java: 270) java.lang.Thread.run(Thread.java:745) で 原因: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014) での java.lang.InterruptedException java.util で.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048) at org.apache.commons.pool2.impl.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:583) at org.apache.commons.pool2.impl.GenericObjectPool .borrowObject(GenericObjectPool.java:442) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363) at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:134) ... 12 詳細
java - DBCP プールでエラーが発生しました:「java.sql.SQLException: 構成ファイルが見つかりません」
エラーが発生しています:
接続を確認しましたが、問題ありません。それは単なるプールエラーです。プールを使用せずに (connectionFactory
以下を使用して) 直接接続を開くと、接続してステートメントを実行し、結果セットを取得できます。
プールを作成して使用するコード:
java - DBCP getNumIdle が常に 0 を返すのはなぜですか? アクティブな接続がアイドル状態になるのはいつですか?
DBCP2 BasicDataSource を使用してデータベース接続を管理しています。テストするときは、getNumActive() と getNumIdle() を使用してプールのステータスを出力します。アイドル接続は常に0ですが、アクティブな接続は増加し続けます。
これが私のコードです:
私の BasicDataSource 構成は
そして、出力はアイドル接続番号であり、接続がアイドルになるのをどれだけ待っても、アクティブな接続は常に増加し続けます。
では、どのような状態で接続が「アイドル」になるのでしょうか? 接続を強制的にアイドル状態にするタイムアウト設定が見つかりません。
どんな洞察も大歓迎です!