2017-11-28 7 views
0

Oracleデータソースを使用してスプリングブートアプリケーションをビルドしました。私は、ログステートメントで合計アクティブな接続を印刷する必要があります。アクティブな接続を取得する方法。注 - 最大アクティブな接続ではなく、アクティブな接続でなければなりません。バネ起動アプリケーションからのアクティブなDB接続の数を取得する方法

答えて

1

設定で使用されている実際の接続プール(dbcp2など)によっては、プールパッケージのロギングレベルをデバッグ/トレースに設定し、プールがこの情報を提供しているかどうかを確認できます。一般的にプールはこの情報を提供します。あなたが持っているもう1つのオプションは、通常、Spring Bootで使用しているデータソースがMBeansというようにJMXに登録されていることです。"MaxActive"などのようなプロパティと共に "NumActive"というプロパティがあります。 JMX MBeanに照会し、ログに情報を出力します。 MBeanで利用可能なデータをチェックするには、VisualVM/JConsoleをアプリケーションに接続し、[MBeans]タブを表示します。このリンクから

+0

感謝。使用しているデフォルトの接続プール(Tomcat接続プール)。春の起動時に接続プールオブジェクトを取得する方法。この春のブーツに新しいものがあります。 –

+1

これは私の問題を修正した 'DataSource dataSource =(DataSource)jdbcTemplate.getDataSource();' 'LOGGER.info(" Max Idle: "+ dataSource.getMaxIdle()); \t \t LOGGER.info( "Max Active:" + dataSource.getMaxIdle()); \t \t LOGGER.info( "アクティブ:" + dataSource.getNumActive()); \t \t LOGGER.info( "Idle:" + dataSource.getNumIdle()); ' [https://numberformat.wordpress.com/2017/10/20/configuring-a-connection-pool-in-spring- using-dbcp2 /](https://numberformat.wordpress.com/2017/10/20/configuring-a-connection-pool-in-spring-using-dbcp2/) –

0
select count(*) from v$session where status='ACTIVE' and user='YOUR_USER_ID' 
+0

このクエリを実行するアクセス権がありませんDBAではありません。後もう一つ。私は、ユーザーからではなく、私のアプリからどれだけの接続が必要です。 –

関連する問題