Я определил два источника данных в * -ds.xml на jboss 4.2.3 (redhat 4.3)
Оба источника данных идентичны. Отличаются только jndi-имя
Каждый определяет 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 имя = 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