問題タブ [connection-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.
hibernate - Dropwizard と休止状態のプロジェクトには、クラスローダー エラーによる起動の問題があります
クラスパスに sqlite-jdbc-3.20.1.jar /h2-1.4.195.jar を使用して、SQLite および h2 データベースを操作しようとしました。
pom.xml に h2 ドライバー jar がありますが、実行時に違いはないようです。
「java -cp target/*」がこれらのjarファイルをクラスパスに直接取得できることを期待して、jarファイルをターゲットディレクトリにコピーしました。すべて役に立たない。このエラーが発生して気が狂いそうになります。見つからなかったクラスはわかりません
ClassLoader から:sun.misc.Launcher$AppClassLoader@18b4aac2;ClassLoader:sun.misc.Launcher$AppClassLoader@18b4aac2
` ... 24 以上
... org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator: HHH000342: クエリメタデータへの接続を取得できませんでした
Maven ツリーを印刷し、verbose:class オプションを使用して、ドライバー クラスがロードされていることを確認しました。Maven の依存関係に dropwizard-hibernate パッケージがあります。OK、どのクラスが見つからないか教えてくれるように強制する方法はありますか?!
補遺:
私のConfig.yml
spring - HikariCP アイドル状態の接続が接続プールにアクティブとして留まる
Spring Boot (1.5.6)、Hibernate、Postgres、Hikari (2.7.8) を使用しています。私の構成は次のとおりです。
私が期待しているのは、アイドル状態30000
のミリ秒/ 30秒後にアイドル接続が解放されるはずです。
問題は、すべてのアイドル状態の接続をそのままにして、新しい接続が要求されるたびに発生することです。そのため、しばらくすると 20 のアイドル接続が発生し、新しいリクエストで Hikari は新しい接続を取得しようとします。SpringBootJPAHikariCP - Connection is not available, request timed out after 30001ms.
それで、私が間違っていることは何ですか。または、構成を誤解していますか?
光の初期化ログ:
更新: 過去 24 時間で、別のスレッドからいくつかの解決策を試しましたが、どれも問題を解決しませんでした。したがって、ここに重要な観察結果があります。
SpringBootJPAHikariCP - Reset (autoCommit) on connection org.postgresql.jdbc.PgConnection@1344bbf1
このログを見つけました。HikariCP このスレッドで接続時のリセット (autoCommit) について調べました。両側(ハイバネートとヒカリ)で同じ(真)を設定しよauto commit
うとし、両側でも偽で試しました。まだ運がない。を有効
/li>leakDetectionThreshold
にします。リーク検出例外が発生しました。そのため、hibernate/spring トランザクション マネージャーが接続を解放するかどうかを理解しようとしました。以下のログから、休止状態が正常に動作しているように見えます。すべてのアイドル接続aは、
idle
フォームpostgres
の視点であり、active
フォーム光の視点です。そのため、データベースからのアイドル接続が 5 つある場合はtoatal = 5, active=4, idle = ,waiting=0
、ひかりログに表示されます。
ノート:
この正確な問題https://github.com/brettwooldridge/HikariCP/issues/109が発生している可能性があります。私の場合、トランザクションごとにアクティブな接続が増加しています。
HikariCP - 接続が利用できません。これも同じ問題です。しかし、誰もこれに対する明確な解決策を提供していません。ところで
@Transactional
、受け入れられた回答で示唆されているように、物乞いから使用していました。