問題タブ [bonecp]
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 - Play2.0は、「SQLException:使用可能な無料の接続を待機してタイムアウトしました」を返します。
Javaアプリケーションを作成するためにPlay2.0.2を使用しています。数日間、問題が発生しています。〜100の要求の後、サーバーはこの例外のスローを開始します。
[[SQLException:利用可能な無料の接続を待機してタイムアウトしました。]]
Connection
withの新しいインスタンスを作成しますDB.getConnection()
。各リクエストのインスタンスは1つしかないため、インスタンスを閉じません。Connection
私が知る限りConnection
、アクティブなTCP接続が閉じられると、インスタンスは自動的に閉じられます。db.default.connectionTimeout
値を上げようとしまし100 seconds
たが、問題を解決できませんでした。次に、アクティブなPostgresql接続を確認しましたが、アクティブな接続はありませんでした。また、Postgresqlを再起動しましたが、問題を解決できませんでした。
今のところ、この問題の唯一の解決策は、Play20インスタンスを強制終了し、新しいインスタンスを開始することです。
Play2.0が作成したログは次のとおりです。
playframework - Play Framework 2.0.4 と BoneCP - 接続リークを回避するには?
私のアプリには、接続を使用する場所が 1 つだけあります。
次のようになります。
したがって、接続は常に閉じられています。
しかし、しばらくすると、bonecp config で定義されているよりもはるかに多くの接続が常に取得されます...
質問:
その問題の明確な解決策はありますか?
フレームワーク 2.1 を試してみる必要がありますか?
一部の人々がそのフレームワークを問題なく使用する方法を本当に理解できません...
構成:
ありがとう!
spring - JSF Spring Hibernate 構成を使用した BoneCP
Web サイトの BoneCP 構成に従って、JSF-Spring-Hibernate の組み合わせで BoneCP を使用しようとしました。
私は Intellij を IDE として使用しており、フレームワークのサポートをプロジェクトに直接追加しましたが、BoneCP とそれに必要なライブラリは maven から取得されています。
ここに私の単純な spring-config.xml があります
Tomcat 7 でプロジェクトを実行すると、次のエラーが表示されます。
BoneCP クラスが見つかりません。どうすれば修正できますか?私はbonecp-provider 0.8.0-alpha1 hibernate 4 spring 3 jsf 2を使用しています
spring - Mybatis、BoneCP、Spring: Tomcat 7.0.* での SQLBuilder メモリ リークの問題
Spring、Mybatis、BoneCP を使用したプロジェクトに取り組んでいます。
Tomcat サーバーを停止するたびに、次のメモリ リークの問題が発生します。
データベースにアクセスするたびにSqlBuilderの数が増えているようです。あなたの助け/コメントは非常に高く評価されています.
これが私の構成です:
pom.xml
root-context.xml
web.xml
jakarta-ee - 実行時に Tomcat の接続プールをリロードする方法はありますか?
私の場合は次のとおりです。
Tomcat(6) を Web サーバーとして使用し、多数の Web アプリケーションを搭載したサーバーを維持する必要があります。これらの Web アプリケーションは、他のユーザーによって維持されています。私たちのサーバーは、Web アプリケーションが表示する必要がある情報を持っている別の部門の DB サーバーに接続しています。適切なプーリング戦略がなければ、サーバーはすぐに惨事に変わりました。
プールを全員に紹介したので (私は BoneCP - 0.7 を選択しました)、Tomcat のグローバル JNDI コンテキストにとどまる単一のプールを作成し、全員がそこから接続できるようにします。これで問題は解決するはずです。
私の懸念は、この Pooling を完全に制御するにはどうすればよいですか? いくつかの要件があります。
実行時に DataSource 構成を手動またはプログラムでリロードしたい (必要なときにバックアップ サーバーへの接続を試行します)
時々変更できる接続数 (最小、最大、アイドル接続) を変更する
Tomcat を有効にしておくことが望ましい
私は、JMX を使用して情報を接続および取得し、プールをリロードするボタンを備えたアラート システムを構築するつもりです (すべてのプーリング戦略には何らかの回復があることはわかっていますが、他の DB サーバーは定期的にクラッシュするため、接続を手動で再起動します)。やや好ましい)。
私はいくつかの可能な解決策を考えています:
- グローバル JNDI コンテキストを再起動するように Tomcat に指示する
- Tomcat に DataSource オブジェクトを再起動するように指示する
- プールを再起動するように BoneCP に指示し、必要に応じて接続を再作成します
- Tomcat 自体を再起動する
私の質問は次のとおりです。
- Tomcat (およびその他の Web アプリケーション) に影響を与えることなく、上記のソリューションを安全に実行できますか?
- 私はこれを気にする必要がありますか?(Tomcatを再起動するだけだと思います)
bonecp - Mavenを使用してBoneCPを構築する際の問題
次のGithubURLから最新のBoneCPソースコードをダウンロードしました。
https://github.com/wwadge/bonecp/archive/master.zip
Mavenを使用してこのソースをビルドしようとすると、bonecp-hbnproviderモジュールのコンパイルにいくつかの問題があります。最初は、次のエラーが発生していました。
解決できない親POM:アーティファクトcom.jolbox:bonecp-parent:pom:0.8.0-rc1-SNAPSHOTが見つかりませんでした。「parent.relativePath」が間違ったローカルPOMを指しています@行19、列13->[ヘルプ2]
bonecp-hbnproviderのpom.xmlで0.8.0-rc1-SNAPSHOTを0.8.0-rc2-SNAPSHOTに変更 した後、次のエラーが発生します。
[エラー]プロジェクトbonecp-providerでの目標の実行に失敗しました:プロジェクトcom.jolbox:bonecp-provider:bundle:0.8.0-rc2-SNAPSHOTの依存関係を解決できませんでした:アーティファクトcom.jolbox:bonecp:jar:0.8が見つかりませんでした.0-rc2-春のマイルストーンのSNAPSHOT(http://s3.amazonaws.com/maven.springframework.org/milestone)->[ヘルプ1]
この問題を解決する方法を教えてください。
java - BoneCPのpartitionCountのより良い説明
公式のBoneCPドキュメントから: http://jolbox.com/index.html?page = http://jolbox.com/configuration.html
partitionCountロックの競合を減らしてパフォーマンスを向上させるために、各着信接続要求は、スレッドアフィニティを持つプール(つまり、pool [threadId%partition_count])から接続を選択します。この数値が大きいほど、存続期間の短いスレッドがたくさんある場合のパフォーマンスが向上します。特定のしきい値を超えると、これらのプールの保守がパフォーマンスに悪影響を及ぼし始めます(パーティションの接続が不足し始めた場合のみ)。
デフォルト:2、最小:1、推奨:3-4(ただし、アプリ固有)
しかし、それはそれほど明確ではなく、良い例がありません。0〜500の同時スレッドで通常のWebサービスを実行しています。どちらが良い値で、なぜですか?
java - 接続プールで閉じられた接続を検出する方法は?
ネットワーク接続がダウンしたときにアクティブな BoneCP jdbc 接続プールがあり、1 分後に戻ってくると想像してください。プールを自動的に再接続して再作成するには、BoneCP をどのように構成する必要がありますか? 現在、これを試してみると、すべての jdbc 接続がプールで利用可能なままになり、コードがそれらを使用しようとするたびに、「java.sql.SQLException: JZ0C0: 接続が既に閉じられています。」という例外が発生します。
更新: BoneCP はこれをサポートしていないようです。他の接続プーリング フレームワークがこの問題を解決するかどうか (およびその方法) を知っている人はいますか?
spring - データベースが使用できない場合に jdbcTemplate.query でデータベース呼び出しがハングしないようにするにはどうすればよいですか?
Spring JDBC テンプレートと BoneCP 接続プールを使用しています。JDBC URL を意図的に無効な値に設定すると (失敗したデータベース接続でシステムがどのように動作するかをテストするため)、UnknownHostException
サーバーの起動時にスローされますが、サーバーは起動し続けます。リクエストを送信すると、jdbcTemplate.query(sql)
メソッドがハングします。システムがハングアップしないようにこれを処理する良い方法は何jdbcTemplate.query(sql)
ですか?
このシナリオは、ネットワーク接続の問題が原因でデータベースがダウンしている場合に発生する可能性があります。idleMaxAgeInSeconds
とのmaxConnectionAgeInSeconds
値をいじってみました。両方とも 10 に設定しましたが、コードはまだハングアップしていjdbcTemplate.query()
ます。
spring - BoneCP がスプリング プロパティ ホルダーから設定を取得できないことがある
私はしばらくこの問題に直面しています。私の設定は次のとおりです
プロジェクトはTomcat 7で実行されています
ローカル マシンでは、プロジェクトは開発サーバーと同様にエラーなしでデプロイされます。残念ながら、プロジェクトを開発サーバーに展開することはできません (サーバー構成は同じままです) が、ローカル マシンは問題ありません。プロジェクトを開発サーバーにデプロイするたびに、Tomcat は INFO: Deploying web application archive /etc/tomcat/webapps/project.war でハングします。しかし、実際の値で BoneCP を構成すると、すべて問題ありません。
何が問題なのか誰か教えてもらえますか?
それは lazyInit の問題であることが判明しました。コメントアウトすると、サーバーは正常に起動できます。しかし今、私は新しい問題に直面しています。ローカル マシンが 100% 正常である間、Mybatis はデータベースにまったくアクセスできません。それでも例外をスローしないでください。しかし、サーバーを停止すると、次の例外が見つかりました
と