13

JBoss warでHibernateを使用しており、接続プールにc3p0を使用しています。どちらも、クラスパスのhibernate.cfg.xml構成ファイル内で構成されています。

<property name = "connection.provider_class"> org.hibernate.connection.C3P0ConnectionProvider </ property>

server.logが接続プールに関する興味深い情報を含む行を生成するのを見てきました。

DEBUG [com.mchange.v2.resourcepool.BasicResourcePool] trace com.mchange.v2.resourcepool.BasicResourcePool@63f5e4b6 [管理対象:10、未使用:9、除外:0]

私の監視プール(私はnagiosを使用しています)については、ログファイルにあるように、使用されている接続の数と空きの数を示すJSPを提供したいと思います。

管理された未使用の接続がいくつあるかをc3p0に尋ねるにはどうすればよいですか?

4

2 に答える 2

23

JMXを介して接続プールを監視できます。ドキュメントから:

JMXを介したc3p0の設定と管理

JMXライブラリとJMXMBeanServerがご使用の環境で使用可能な場合(これらはJDK 1.5以降に含まれています)、JMX管理ツール(jdk 1.5にバンドルされているjconsoleなど)を介してc3p0データソースを検査および構成できます。c3p0は、の下にMBeanを登録しcom.mchange.v2.c3p0、1つはライブラリ全体に関する統計(と呼ばれるC3P0Registry)を持ち、PooledDataSourceデプロイするたびにMBeanを登録します。データソースの構成プロパティを表示および変更したり、接続、ステートメント、およびスレッドプールのアクティビティを追跡したり、 PooledDataSourceMBeanを介してプールとデータソースをリセットしたりできます。(使用可能な操作のドキュメントについては、のAPIドキュメントを参照することをお勧めし PooledDataSourceます。)

ちなみに、Nagios用のJMXプラグインがあるようです。JSPを使用する必要はありません。

于 2010-11-05T12:43:06.330 に答える
2

このようにIcinga/Nagiosで監視できます。

  1. GoogleコードからJMXQueryをダウンロードします。そのようにリビジョン18をチェックアウトする必要があります。

    svn checkout -r 18 http://jmxquery.googlecode.com/svn/trunk/ jmxquery-read-only

  2. このパッチをダウンロードしてください。c3p0のワイルドカードパッチ

  3. このコマンドを使用して、ソースコードにパッチを適用します:( jmxquery-read-only / src / mainディレクトリにいることを確認してください)

    patch -p0 -i wildcard_patch.diff

  4. 次に、 Apache Mavenをダウンロードし、このコマンドを使用して抽出します

    tar -zxvf apache-maven-*-bin.tar.gz

  5. ここで、jmxquery-read-onlyフォルダーにcdし、次のコマンドを実行します(apache mavenとjmxqueryが同じフォルダーにあると仮定します)

    ../apache-maven-*/bin/mvn compile

  6. 次に、次のコマンドを実行します。

    ../apache-maven-3.0.3/bin/mvn package

  7. これで、次のようにc3p0接続プールをクエリするために使用できるjmxquery.jarファイルを作成する必要があります(check_jmxファイルは、通常のようにgoogleコードサイトからjmxqueryコードをダウンロードするだけで取得できます。このリンクを使用して)

    check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:1090/jmxrmi -O com.mchange.v2.c3p0:type=PooledDataSource* -N 1 -A numBusyConnections -w 50 -c 100

于 2013-08-05T18:22:50.563 に答える