我有一个通常在 WebLogic 中运行良好的 Spring 应用程序。
我有一组使用 Atomikos“Transaction Essentials”框架提供独立事务管理器的集成测试。我有这个工作,但我现在看到了一个新问题,但我不知道我可能做了什么改变才能实现这一点。
我看到这样开始的堆栈跟踪:
org.springframework.jdbc.CannotGetJdbcConnectionException:无法获得 JDBC 连接;嵌套异常是 com.atomikos.jdbc.AtomikosSQLException: 无法在 org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) 增长连接池
以下是相关的 bean 定义:
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"
init-method="init" destroy-method="close">
<!-- when close is called, should we force transactions to terminate or not? -->
<property name="forceShutdown">
<value>true</value>
</property>
</bean>
<!-- Also use Atomikos UserTransactionImp, needed to configure Spring -->
<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">
<property name="transactionTimeout">
<value>300</value>
</property>
</bean>
<!-- Configure the Spring framework to use JTA transactions from Atomikos -->
<bean id="catalogTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManager">
<ref bean="atomikosTransactionManager" />
</property>
<property name="userTransaction">
<ref bean="atomikosUserTransaction" />
</property>
</bean>
我也有几个这样的:
<bean id="appConfigDataSource"
class="com.atomikos.jdbc.AtomikosDataSourceBean"
p:uniqueResourceName="appConfigDataSource"
p:xaDataSourceClassName="oracle.jdbc.xa.client.OracleXADataSource"
p:poolSize="5">
<property name="xaProperties">
<props>
<prop key="user">${ds.appconfig.userName}</prop>
<prop key="password">${ds.appconfig.password}</prop>
<prop key="URL">${ds.appconfig.url}</prop>
</props>
</property>
</bean>
我尝试将“5”更改为“50”。这使其运行时间更长,但仍然失败并出现相同的错误。它甚至不需要 5 个甚至 50 个连接。我有一种强烈的感觉,如果我把它改成更大的数字,它会运行得更久,仍然会失败并出现同样的错误。
我可能会错过什么?