【问题标题】:jboss datasource statistics JMX monitoring - inconsistent informationjboss数据源统计JMX监控——不一致的信息
【发布时间】:2011-08-19 04:45:48
【问题描述】:

我在 jboss 4.2.3 (redhat 4.3) 上的 *-ds.xml 中定义了两个数据源 两个数据源是相同的。只有 jndi-name 不同 每个定义 min=max=10

<xa-datasource>
 <jndi-name>com.trax.hibernate.DataSource</jndi-name>
 <track-connection-by-tx>true</track-connection-by-tx>
 <isSameRM-override-value>false</isSameRM-override-value>
 <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
 <xa-datasource-property name="URL">jdbc:oracle:thin:@localhost:1521:orcl10</xa-datasource-property>
 <xa-datasource-property name="User"> xxxx </xa-datasource-property>
 <xa-datasource-property name="Password"> xxxx </xa-datasource-property>
 <min-pool-size>10</min-pool-size>
 <max-pool-size>10</max-pool-size>
 <prefill>true</prefill>
 <blocking-timeout-millis>60000</blocking-timeout-millis>
 <ih3e-timeout-minutes>15</ih3e-timeout-minutes>
 <valid-connection-checker-class-name> org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker </valid-connection-checker-class-name>
 <check-valid-connection-sql>select 1 from gtw_cust</check-valid-connection-sql>
 <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
 <no-tx-separate-pools/>
</xa-datasource>

<xa-datasource>
 <jndi-name>AuditTrail.DataSource</jndi-name>
 <track-connection-by-tx>true</track-connection-by-tx>
 <isSameRM-override-value>false</isSameRM-override-value>
 <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
 <xa-datasource-property name="URL">jdbc:oracle:thin:@localhost:1521:orcl10</xa-datasource-property>
 <xa-datasource-property name="User">xxxx</xa-datasource-property>
 <xa-datasource-property name="Password"> xxxx </xa-datasource-property>
 <min-pool-size>10</min-pool-size>
 <max-pool-size>10</max-pool-size>
 <prefill>true</prefill>
 <blocking-timeout-millis>60000</blocking-timeout-millis>
 <ih3e-timeout-minutes>15</ih3e-timeout-minutes>
 <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name>
 <check-valid-connection-sql>select 1 from gtw_cust</check-valid-connection-sql>
 <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
 <no-tx-separate-pools/>
</xa-datasource>

问题: 在 jmx-console 上,name=com.trax.hibernate.DataSource,service=ManagedConnectionPool,信息显示 20 个连接,而不是预期的 10 个。

我希望创建的连接的最大值为 10 (MaxSize)。 这里看起来实际连接数是 MaxSize 的两倍,并且连接被创建和销毁(40 个创建和 20 个被销毁)

我做错了什么?你怎么解释这个?

com.trax.hibernate.DataSource:
AvailableConnectionCount    20
ConnectionCount           20
MinSize                      10
MaxSize                      10
MaxConnectionsInUseCount    11
InUseConnectionCount              0
ConnectionCreatedCount  40
ConnectionDestroyedCount    20

AuditTrail.DataSource:
AvailableConnectionCount    10
ConnectionCount           10
MinSize                      10
MaxSize                      10
MaxConnectionsInUseCount    8
InUseConnectionCount              0
ConnectionCreatedCount  20
ConnectionDestroyedCount    10

【问题讨论】:

  • 当仅部署数据源而不部署应用程序时,两个数据源会准确创建 MaxSize 连接。只有在部署应用程序时,第一个数据源会创建双 MaxSize 连接,因此它确实取决于应用程序如何使用数据源,尽管两个数据源都定义为 XA - oracle.jdbc.xa.client.OracleXADataSource

标签: sql jboss datasource jmx


【解决方案1】:

这是因为&lt;no-tx-separate-pools/&gt; 属性。请参阅 JBoss 服务器配置指南中的 XA 数据源文档:

&lt;no-tx-separate-pools&gt;

分别汇集事务性和非事务性连接

警告

使用此选项将导致您的总池大小为 max-pool-size 的两倍,因为将创建两个实际的池。

http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/4.3/html-single/Server_Configuration_Guide/index.html#id2947572

【讨论】:

  • 好的,我可以看到我正在使用该属性。但是,我在两个数据源中都使用它,只有第一个是双倍的......
  • 我想这是因为您使用 AuditTrail 连接的方式与主池不同。 AuditTrail 中有什么特别之处吗?它是主要交易的一部分吗?
  • 嗯,第一个数据源是通过 Hibernate 和 jboss JTA 使用的,而另一个是由另一个(第三方)软件库使用的,所以你可能是对的......关于我如何验证的任何想法那个?
  • 不确定。也许查看这个第三方库的文档。查看它是否尝试加入现有的 JTA 事务。我敢打赌它不会。当然,另一种方法是删除此选项并观看池:-)
  • 好的,现在关于 ConnectionDestroyedCount 值......为什么数据源要创建它需要的双倍连接,然后销毁 50%?我希望它永远不会创建超过 MaxSize...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 2010-09-20
  • 1970-01-01
相关资源
最近更新 更多