0

まず、私は監視管理者であり、Java 開発者ではないことを覚えておいてください。

c3p0プールのいくつかの属性値を監視したいのですが、そのようなプールにはidentity Token、英数字の文字列と、パイプ文字で結合された 16 進数の文字列で構成される一意の値があることがわかりました。たとえば、次のようになります。

2rxggs9vtsz4i48lg1tk|665e33d4

context.xmlただし、 Tomcat サーバーのファイルにある JDBC プールには、標準的な名前しか表示されません。

    <Resource name="jdbc/EXAMPLE"
            jdbcUrl="jdbc:oracle:thin:@oracle:1521:PRExxx" user="EXAMPLE"
            password="my34xXple" auth="Container" description="DB Connection"
            driverClass="oracle.jdbc.driver.OracleDriver" maxPoolSize="50"
            minPoolSize="2" maxIdleTime="30" checkoutTimeout="2000"
            acquireIncrement="1" maxConnectionAge="3600"
            factory="org.apache.naming.factory.BeanFactory" type="com.mchange.v2.c3p0.ComboPooledDataSource"
            preferredTestQuery="SELECT 1 FROM dual" />

JAR を使用して、JMX 接続を介して実行中の Java プロセスの MBean をクエリします。ここにあるCatalina:type=Resourceもの:

Catalina:type=Resource,resourcetype=Context,path=/myapp,host=localhost,class=com.mchange.v2.c3p0.ComboPooledDataSource,name="jdbc/EXAMPLE"/scope (String) = Shareable
Catalina:type=Resource,resourcetype=Context,path=/myapp,host=localhost,class=com.mchange.v2.c3p0.ComboPooledDataSource,name="jdbc/EXAMPLE"/description (String) = DB Connection
Catalina:type=Resource,resourcetype=Context,path=/myapp,host=localhost,class=com.mchange.v2.c3p0.ComboPooledDataSource,name="jdbc/EXAMPLE"/name (String) = jdbc/EXAMPLE
Catalina:type=Resource,resourcetype=Context,path=/myapp,host=localhost,class=com.mchange.v2.c3p0.ComboPooledDataSource,name="jdbc/EXAMPLE"/type (String) = com.mchange.v2.c3p0.ComboPooledDataSource

そしてここにあるcom.mchange.v2.c3p0もの

com.mchange.v2.c3p0:type=C3P0Registry/AllIdentityTokenCount (Integer) = 15
com.mchange.v2.c3p0:type=C3P0Registry/AllIdentityTokenizedCount (Integer) = 15
com.mchange.v2.c3p0:type=C3P0Registry/AllPooledDataSourcesCount (Integer) = 5
com.mchange.v2.c3p0:type=PooledDataSource[2rxggs9vtsz4i48lg1tk|665e33d4]/dataSourceName (String) = 2rxggs9vtsz4i48lg1tk|665e33d4
com.mchange.v2.c3p0:type=PooledDataSource[2rxggs9vtsz4i48lg1tk|665e33d4]/threadPoolNumIdleThreads (Integer) = 3
com.mchange.v2.c3p0:type=PooledDataSource[2rxggs9vtsz4i48lg1tk|665e33d4]/acquireRetryAttempts (Integer) = 30
com.mchange.v2.c3p0:type=PooledDataSource[2rxggs9vtsz4i48lg1tk|665e33d4]/autoCommitOnClose (Boolean) = false
com.mchange.v2.c3p0:type=PooledDataSource[2rxggs9vtsz4i48lg1tk|665e33d4]/identityToken (String) = 2rxggs9vtsz4i48lg1tk|665e33d4

これらは私の質問です:

  1. ID トークンとリソース プール名をリンクする方法は?

  2. サンプル アプリでは、ファイルに 5 つのリソースが定義されていcontext.xmlますが、c3p0 プールは 15 あります。これは、C3P0Registry/AllIdentityTokenizedCountおよびC3P0Registry/AllPooledDataSourcesCount属性にも見られます。一対一の関係ではないですか?

  3. ID トークンはどのように作成されますか? それらはランダムですか?2つの文字列は何を意味しますか. それらはプロセスまたはマシンの値に関連付けられていますか?

ありがとう

4

1 に答える 1