問題タブ [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 - データベースの再起動後に jdbc プール データソースの再接続を試行します
データベース接続にTomcat jdbc-poolを使用する Java バックエンドを備えた Web アプリがあります。これはうまくいきます。
しかし、私はそれを他の場所にエクスポートする前に誰にでもできるようにしようとしています。最近、誰かが SQL Server データベース サービスを再起動したが、Tomcat サービスを再起動しなかったというシナリオが発生しました。これにより SQLException: java.sql.SQLException: I/O Error: Connection reset by peer: socket write error
Tomcat を再起動するまで、jdbc-pool データソースが強制的に再接続されました。
Tomcat jdbc-pool docs で何らかの構成を探して、データソースに再接続を試みるように指示しましたが、何も見つかりませんでした。
これに何らかの構成があるかどうか、または各リクエストの前にこの条件を確認する必要があるかどうかを誰かが知っていますか?
java - Tomcat エラー: java.sql.SQLException: jdbc:sqlserver:// に適したドライバーが見つかりません
私はTomcatにひどい問題を抱えています.この問題のために、私は1か月以上プロジェクトを放棄しました.それでも、私はまだそれを解決してプロジェクトを続ける必要があります...
だからそれは私にこのエラーを投げています:
java.sql.SQLException: jdbc に適したドライバーが見つかりません:sqlserver://isd.ktu.lt:1433;DatabaseName=LN2012_bakDB2 java.lang.NullPointerException
問題は、同じアプリケーションがデスクトップ バージョンの perfectlz で動作しているということですが、サーバー上で実行されるはずのバージョン (NetBeans 7.1.2 内の Tomcat 7.0.22.0) になると、エラーが発生するだけです。プーリングドライバーをロードしていないようですが、わかりません...
さて、これを担当する部分は次のとおりです。
接続を取得しようとした時点で発生し、接続が正常に取得されないため、null ポインター例外が発生します。
私は Tomcat に詳しくありませんが、この瞬間まで、Netbeans は Tomcat をうまく処理していました... 問題は、このようなエラーが嫌いなことです... 3 日以内に解決しないと、イライラして解決できません。あの頃に戻りたい、壁にぶち当たりそう…ググってみたけどあまり参考にならなかった…だから誰か助けてくれたら嬉しいなこれ。ありがとう。:)
java - PoolableConnectionFactoryObjectを作成する理由
したがって、データベースプーリングには、JDBCよりも優れたオプションがあると思いますが、それでも何かが私を夢中にさせています。すべてのサンプルコードで、このようなプーリングを提案しています。
PoolableConnectionFactoryが作成されるのはなぜですか?使用されることはなく、ソースを見ると、コンストラクターで実際に何かを結び付けたり、独自のプライベート変数を設定する以外に魔法のようなことをしたりすることはわかりません。JDBCサイトはそれらの情報でかなり不可解であり、ソースコードを掘り下げるすべてのことで私は混乱しました。これを行う理由はありますか?どうやら、代わりに、実際に変数に割り当てずに、オブジェクトをnewでインスタンス化することもできますが、それで十分です...さらに混乱します。
java - 接続プールを備えたPreparedStatementプール
重複の可能性:
dbcpでのプリペアドステートメントプーリング
内部使用のためにTomcatのデータベース接続プールメカニズムを使用するWebアプリケーションを構築しています。アプリケーションがデータをより効率的に取得できるように、プリペアドステートメントもプールしようとしています。
私の理解では、接続、結果セット、およびステートメントが閉じられると、接続はプールに戻されます。適切なフラグが設定されている場合、放棄された接続も閉じられ、プールに戻されます。接続を閉じるということは、すべてのデータベースカーソルと、プリペアドステートメントを含むキャッシュされたステートメントを解放することを意味します。では、プリペアドステートメントプーリングのポイントは何ですか?
java - Java Web サービス MYSQL 接続管理
Web サービスでの MySQL 接続に行き詰まっています。
これは、Web サービスでデータベースに接続するために使用しているクラスです。同じ Web サービスで実行されているクォーツのスケジュールされたジョブがいくつかあります。
各 Web サービス メソッド呼び出し、各ジョブ開始時、および最後にブロック CloseConnection() で OpenConnection() メソッドを呼び出します。
しかし、試行中に一度だけ接続を閉じている間、定期的にこのエラーが発生しています-最後にブロックします。
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: ステートメントを閉じた後、操作は許可されません。
私のWebサービスメソッドは次のようになります
performance - Increase load and decrease performance while replace DBCP to Tomcat JDBC-pool
After problems with connection leak and deadlocks in DBCP we made a decision to replace it with Tomcat JDBC-pool. Of course migration was really simple.
But after deploy it on a production environment I noticed, that load on a server with running two Tomcats increase from 4-4.5 to 5.5. We didn't do anything more, except change of pool. Moreover, performance measured with JMeter decrease by about 5%.
I spent some time to tune pool parameters, but without visible effects. I pasted my current config (from <GlobalNamingResources>
in server.xml
) below:
FairQueue and PoolSweeperEnabled are true
In Spring applicationContext-jdbc.xml I have only:
What am I doing wrong? I thought, that JDBC_pool should be faster than DBCP out of the box.
tomcat7 - Tomcatjdbc-プールacquireRetryDelay
C3p0キャッシュには、取得試行間の時間を設定するためのacquireRetryDelayパラメーターがあります。
tomcat7 jdbc-poolは同じ機能を持っていますか?
jdbc - dbcp は、高いオープン/クローズ率で Oracle DB への膨大な接続数を生成します
私のアプリケーションはDBCP1.4、休止状態、および春を使用し、Oracle に接続します。数百の要求/秒の一般的な負荷の下で、DB への TCP 接続が多すぎます (認証のために DB 側でシステムが過剰に使用され、16 コアのマシンで 95% の CPU が使用されます)。1 秒あたり 80 接続を超える接続では、クライアント側からのリクエストと FIN はほとんど処理されません。各セッションはわずか 15 ~ 20 ミリ秒です。DBCPまたはOracle ドライバーを調整して(どちらがこれを担当しているのかわかりません)、各接続をより長い時間 (少なくとも 5 ~ 10 秒と考えて) 維持したいのですが、どうすればこれを取得できますか? DBCPのプール設定は
春のスレッド実行者の設定は -
java - JDBC でトランザクションが進行中かどうかを確認するにはどうすればよいですか?
Connection
自動コミットをオフにして JDBC を使用しています。クリーンアップ メソッドで、現在進行中のトランザクションがないことを確認したいのですが、この情報を取得する方法がわかりません。指定された JDBC でトランザクションが進行中かどうかを確認するにはどうすればよいConnection
ですか?
アップデート
JDBC にはネイティブに何もありませんが、Tomcat JDBC 接続プールにはインターセプターの概念があり、そのレベルでトランザクションを追跡するように記述できるかどうか疑問に思っています。
java - Java - DBCP vs JNDI?
私は初心者で、簡単な Java Swing アプリケーションをいくつか作成しました。Apache Commons DBCP を使用して接続プールを作成し、データソースにアクセスすることができました。
私は最近、JSP とサーブレットを使用して Java Web ベースのアプリケーションを作成し始めました。JNDI を使用してデータソースにアクセスする方法を学びました。XML ファイルを更新し、InitialContext() と lookup("java:comp/env") を使用します。サーブレット/JSP コンテナーとして Apache Tomcat を使用しています。
1.しかし、DB接続プールはどこに作成されますか?
2. はいの場合、それは JNDI が何らかの方法で DBCP を内部的に使用することを意味しますか?
Swing アプリケーション用の DBCP を作成する必要がある場合、最初に GenericObjectPool のインスタンスを作成し、次に接続ファクトリ オブジェクトを作成し、最後に PoolableConnectionFactory オブジェクトを作成して、接続の取得に使用されるデータソースを作成する必要がありました。