問題タブ [apache-commons-dbcp]
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 - DBCP接続を使用してCLOBを更新できません
ApacheDBCP接続プーリングを使用して取得された接続オブジェクトを使用してCLOB列を更新しようとしています。
以前、これを使用して接続プールを実装しましたが、正常に機能していました。つまり、CLOBを更新できます。java.sql.SQLExceptionが発生したため、DBCPに切り替えました。ORA -01000:開いているカーソルの最大数を超えました。すべてのDAOの接続、resultSet、preparedStatementオブジェクトを確認しました。すべてのfinallyブロックでは、これらのカーソルが閉じられています。まだこのエラーに直面しているため、DBCPに切り替えることにしました。
しかし、このDBCP接続を使用してCLOBを更新しようとすると、アプリケーションはpstmt.executeUpdate()でハングします。
getCLOB()メソッドは次のとおりです。
私も((DelegatingConnection) conn).getInnermostDelegate()
接続を渡してみましたが、無駄です。
また、ここでシャイニーが提案したことを試してみました。今回はデータを選択しているときにぶら下がっています。
Oracle 9iを使用していて、JDBC Oracle Driverのバージョンが10を超えています(申し訳ありませんが、現在正確なバージョンを思い出せませんでした)。
java - Oracle DB を使用した Java Web アプリケーションでの最大アイドル時間の超過
別のマシンで実行されている Oracle データベースに接続する Java Web アプリケーションがあります (これが関連しているかどうかはわかりません)。接続プーリングに DBCP を使用しています。Web アプリケーションは JBoss 4.2.2 で実行されており、Spring でデータソースを Bean として定義しています。
ORMにはHibernateを使用しています。
「ORA-02396: 最大アイドル時間を超えました。もう一度接続してください」などのエラーが時々発生します。
「removeAbandoned」(true) および「removeAbandondedTimeout」(120) という名前の DBCP BasicDataSource にプロパティを追加しようとしましたが、役に立ちませんでした。
どんな助けでも大歓迎です。さらに情報を提供する必要がある場合は、お知らせください - 私は接続プーリングなどの内部の仕組みについてそれほど詳しくはありません...
mysql - Hibernate、C3P0、Mysql 接続プーリング
最近、Apache DBCP 接続プールから C3P0 に切り替え、ログを調べて、接続タイムアウトの問題があることを確認しました。過去に DBCP と Tomcat でこれを経験したことがないので、構成の問題なのかドライバーの問題なのか疑問に思っています。
サーバーがしばらくアイドル状態になった後にページをロードすると、一部のコンテンツが送信されないことがわかります (サーバーが接続などを取得できないため)。ページを更新すると、すべてのコンテンツが表示されます。
とにかくMySQLを使用しているので、MySQL接続プールの使用を推奨する人はいますか? MySQL 接続プールについて、どのような経験がありますか?
ウォルター
java - 接続プール内の空き接続数を取得する
私のプロジェクトでは、Spring は org.apache.commons.dbcp.BasicDataSource クラスで接続プールを管理します。現在の時間に空きまたは使用されている接続の数を取得することは可能ですか?
ありがとう。
gwt - GWT eclispe 組み込みの桟橋と DBCP 接続プーリング
GWT (2.0.3) Eclipse プラグインに付属する組み込み Jetty をセットアップして、Tomcat で完全に動作する JNDI 接続プールを使用しようとしていますが、成功しませんでした。この問題に関するいくつかのことを読んだので、次のことを行うことができました: 次のパラメーターを使用して jvm を起動することにより、Jetty の名前付け初期コンテキスト ファクトリをクラスパスに含めました-Djava.naming.factory.initial=org.mortbay.naming.InitialContextFactory
。jetty-web.xml
次のようなも作成しました。
ビルドパスに必要なファイルを含めました。ご覧のとおり、そこでは 2 つの JNDI リソースが宣言されています。MySQL データベースへのハンドルMysqlConnectionPoolDataSource
(ブログ投稿で見ました) は、私の環境で正常に動作し、jetty が jetty-web.xml を解析していることを確認するために使用されます。もう 1 つDBCP
は DB2 データベースへの接続に使用しようとします。問題は、DBCP リソースを使用しようとするたびに、Jetty の起動時に次のエラーが発生することです。
私が言ったように、これらは Tomcat の下で正常に動作し、問題は DB2 に固有のものではありません。DBCP を使用して MySQL データソースを取得することもできません。エラーメッセージを見ると、DBCPファイルがクラスパスにないようですが、そこに配置する方法がわかりません(もちろんプロジェクトのビルドパスにありますが、Jettyには関係ないようです)。おそらく Djava.naming.factory.initial に別のパラメーターを追加する必要がありますが、DBCP が機能するための正しいパラメーターが何であるかはわかりません。
乾杯
java - Oracle Universal Connection Pool (UCP) の優れた点
実際の本番環境で Oracle UCP を使用した経験のある人はいますか? データベースの再接続を適切に処理しますか? マルチスレッドの問題はありますか? C3P0 や Apache DBCP と比較した人はいますか?
database - データベースが利用できない場合、dbcp で接続を返す際に問題が発生する
2009 年 1 月 29 日のエリクソンによる次のリンクを見つけました。
DBCP (Apache Commons Database Connection Pooling) はまだ関連していますか?
「DBCP には重大な欠陥があります。特に、非常に多くのドライバーが DataSource でのプーリングをネイティブにサポートしている場合、DBCP は運用アプリケーションには適していないと思います。
私の場合、ラクダの背中を壊したストローは、データベースへの新しい接続試行が行われている間ずっとプール全体がロックされていることに気付いたときでした。そのため、接続が遅くなったりタイムアウトになったりするようなことがデータベースに発生した場合、他のスレッドがプールに接続を戻そうとすると、データベースの使用が完了していても、他のスレッドがブロックされます。」
この投稿以降、dbcp で多くの変更または改善が行われたかどうか疑問に思っていました。実稼働システムでこの正確な問題が発生しています。
dbcp に代わるものはありますか? データベース接続フレームワークで使用しています...基本的には、エンジニアが hibernate を書き直すのが楽しいだろうと考えたフレームワークを継承しました。聞かないでください...それは長くて下品な話です。とにかく、データベースが遅い/ダウンしているときにプールに接続を返す際にこれらの問題が発生しています。アイデア、提案、代替案はありますか?
postgresql - OSGI & Apache Commons-DBCP クラスローディングの問題
OSGi バンドルで Apache commons-dbcp 接続プールを使用しているコードをいくつか継承しました。このコードは、Eclipse/Equinox OSGi バージョン 3.4.3 (R34x_v20081215)、commons-dbcp 1.2.2、および springsource.org の postgres jdbc3 8.3.603 バンドルで正常に動作します。
私はモダナイズしたかったのですが、これが私の最初の間違いだったのかもしれません!
最新バージョンの commons-dbcp (1.4.1) とともに、新しい postgresql JDBC3 または JDBC4 バンドルで Felix または Equinox OSGI コアの新しいバージョンを使用すると、クラスローディングの問題が発生します。多数の検索を行ったところ、commons-dbcp コードには修正DBCP-214が必要であることがわかりましたが、それでも失敗しているようです。
commons-dbcp MANIFEST.MF import-package 行に org.postgresql を配置しようとしましたが、それも機能しませんでした。
最初に基本的な class.forName() と DriverManager.getConnection() を実行するアクティベーターで簡単なテストを作成しましたが、これは正常に動作しますが、BasicDataSource() を追加して BasicDataSource.getConnection() との接続をセットアップすると、 ClassNotFoundException。以下のコード例を参照してください。
ヘルプ、提案などをお寄せいただきありがとうございます...
さう!
java - Spring、Hibernate 3.3、c3p0でMySQL接続プロパティを構成するにはどうすればよいですか?
現在、アプリケーションをHibernate3.2からHibernate3.3にアップグレードしています。デフォルト以外のプールを選択する正当な理由がないため、デフォルトの接続プール(HibernateはデフォルトをCommons DBCPからc3p0に変更しました)を使用します。少なくとも非ですが、以前にDBCPを使用したことがあります。
これまでのところ、アップグレードはほとんど問題なく行われました。私が動作することができない唯一のことは、基礎となるMySQLJDBC4Connectionにプロパティを渡すことです。これまで、DBCPのBasicDataSource.addConnectionProperty(String、String)を使用してプロパティを渡しました(useUnicode = true、characterEncodin = UTF-8、characterSetResults = UTF-8、zeroDateTimeBehavior = convertToNull)。
ただし、 JDBC URLに含める以外に、c3p0で同じことを行う方法を見つけることができません。(これは、ユーザーにこれらのパラメーターを含めることを強制せずにURLを構成可能に保ちたいので、避けたいものです。)
これまで、ConnectionCustomizerを使用しようとしましたが成功しませんでした。他に何か提案はありますか?