問題タブ [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.
java - Tomcat 8.5 - ServletContextListener の contextInitialized メソッドで mysql JDBC リソースにアクセスできない
私の Web アプリケーションには、次のようなサーブレット リスナーがあります。
私のリソース定義は問題なく、Tomcat 7 では問題なく動作しましたが、Tomcat サーバー 8.5 にアップグレードすると、起動時に例外がスローされます。
とにかく、サーバーの起動後(他のサーブレットで)、同じコードを使用して問題なくmysql接続を取得できます。問題は、Tomcat の起動中にこのエラーが発生する原因は何ですか?
更新
これが私の仮想ホスト構成です:
spring - Spring AsyncRestTemplate 接続プールとスレッド プールの設定
サービスで REST 呼び出しを行うために AsyncRestTemplate を使用したいと考えています。Spring のドキュメントによると、このクラスには 5 つのコンストラクターがあります ( http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/AsyncRestTemplate.htmlを参照) 。
AsyncRestTemplate(AsyncClientHttpRequestFactory asyncRequestFactory) - この AsyncClientHttpRequestFactory 引数を使用して、接続プールを構成できます。
AsyncRestTemplate(AsyncListenableTaskExecutor taskExecutor) - これを使用して、非同期操作用のスレッド プールを構成できます。
AsyncRestTemplate で接続プールとスレッド プールの両方を構成できる方法があるかどうか知りたいです。
よろしくお願いします。
tomcat - Spring Boot で接続プールのログを取得する方法
AWS に戦争を展開しましたが、現在非常に遅いです。春のブートで次のことを理解したい:
Spring Boot アプリで使用される接続プールはどれですか?
スプリングブートアプリで接続プール情報をログに記録するには? 今、私は spring.datasource.log-abandoned を取得しました。ありますか?アイドル状態の数とアクティブな状態の数などの情報をログに記録したい.
現在の接続プールでアクティブおよびアイドル状態にできる接続の最小数と最大数は?
postgresql - postgres データソースの Grails の共有可能な接続プールと共有できない接続プール
私の問題は、これらの例外が発生している 2 つのアプリがあることです。
原因: org.apache.tomcat.jdbc.pool.PoolExhaustedException: [pool-2-thread-273] タイムアウト: プールが空です。30 秒以内に接続をフェッチできませんでした。使用できるものはありません[サイズ:100; ビジー:99; アイドル:0; lastwait:30000]。
次の 2 つのアプリがあります。
- PostgresデータソースAに接続するTomcatで実行されているgrails app war
- postgres データ ソース A と同じサーバー上の別のデータベースであるデータ ソース B に接続するスタンドアロン jar。
どちらのアプリもデフォルトで org.apache.tomcat.jdbc.pool.ConnectionPool を使用しているようです (デフォルトのプールをどこにも設定しておらず、両方のアプリがこれを使用しているため)。また、私の最大接続制限は 200 で、130 未満の接続しか使用していないため、最大接続の問題は発生していません。2 つのアプリが別々のデータ ソースを使用しているため、同じ conn プールにすることはできないということを読みました。
postgres サーバーにログインすると、アプリ 2 には 100 のアイドル接続があり、プールの最大アイドル サイズは 100 であることがわかります。これで問題ありません。しかし、私が期待していなかったのは、アプリ 1 がアプリ 2 のプールからの接続を使用するということです。つまり、アプリが接続プールを共有しているように見えるので、アプリ 1 は、既に 100 を持っているこの共通プールから取得しようとしていると思います。割り当てられた接続。彼らはTomcat connプールを使用し、AppBはTomcatさえ使用していないので、なぜそれらが共有されるのでしょうか...
私の質問は次のとおりです(これに関するドキュメントを見つけるのに本当に苦労しているため):
- デフォルトで異なるアプリが同じ接続プールを使用するというのは正確ですか?
- 同じ接続プールを使用している場合、異なるデータ ソースを使用している場合、どのように接続プールを共有できますか?
- grails で共有と非共有の conn プールを指定することは可能ですか? https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html このリンクは特にpostgresについて言及しており、共有対非共有の概念があるようです(ただし、適切なドキュメントは見つかりませんこれについて)しかし、それはgrailsの外で設定されています。Grailsでそれを行う方法はありますか?
注: grails 2.4.5 および postgres サーバー 90502 を使用
jdbc - org.apache.tomcat.jdbc.pool.jmx が JConsole に表示されない
Tomcat サーバーで接続プールを監視する方法を調査しました。調査の後、私はこの質問を見つけました。
彼の答えに従って、私はオプション 2 - JMX (Java Management Extensions) を使用した監視を選択します。Tomcat サーバーで JMX をセットアップしようとしましたが、最終的にリモートでメモリ使用量、CPU 使用量、スレッド プール、およびロードされたクラスを監視できます。
org.apache.tomcat.jdbc.pool.jmx
ただし、 [MBeans] タブに がないため、接続プールを監視できませんでした。(私はこの予想通りの写真のはずですが、私はこの実際の写真を手に入れました)
では、JConsole を使用して接続プールを監視する方法はありますか、それともorg.apache.tomcat.jdbc.pool.jmx
JConsole に表示されない理由を教えてください。
ありがとう。