ibatisのdbcp接続プールの構成項目はすべて使用されていません
皆さんibatis 2を見てください.1.7.597ソース:
このコードの目的はibatisのsqlMapConfigを読み取ることである.xmlプロファイルの、このプロファイルの具体的なイメージは次のとおりです.
ソースコードには、ibatisで構成できるdbcpの構成がいくつかしかありません.残りはdbcpのデフォルト値です.
String validationQuery = (String) map.get("Pool.ValidationQuery"); String maxActive = (String) map.get("Pool.MaximumActiveConnections"); String maxIdle = (String) map.get("Pool.MaximumIdleConnections"); String maxWait = (String) map.get("Pool.MaximumWait");
結論:私の漏れかどうかはわかりませんが、ソースコードを見ると確かにこの4つの構成項目しか処理されていません.他には言及されていません.実際に私に影響を及ぼした結果は私が
この2つの構成はibatisの阻害でdbcpは実際には見られないので、ibatisのこのバージョンがどうなっているのか本当に分かりませんが、DBPPを完全に使っていないような気がして、次のバージョンが改善されるかどうか分かりません.
private BasicDataSource legacyDbcpConfiguration(Map map) {
BasicDataSource basicDataSource = null;
if (map.containsKey("JDBC.Driver")) {
basicDataSource = new BasicDataSource();
String driver = (String) map.get("JDBC.Driver");
String url = (String) map.get("JDBC.ConnectionURL");
String username = (String) map.get("JDBC.Username");
String password = (String) map.get("JDBC.Password");
String validationQuery = (String) map.get("Pool.ValidationQuery");
String maxActive = (String) map.get("Pool.MaximumActiveConnections");
String maxIdle = (String) map.get("Pool.MaximumIdleConnections");
String maxWait = (String) map.get("Pool.MaximumWait");
basicDataSource.setUrl(url);
basicDataSource.setDriverClassName(driver);
basicDataSource.setUsername(username);
basicDataSource.setPassword(password);
if (notEmpty(validationQuery)) {
basicDataSource.setValidationQuery(validationQuery);
}
if (notEmpty(maxActive)) {
basicDataSource.setMaxActive(Integer.parseInt(maxActive));
}
if (notEmpty(maxIdle)) {
basicDataSource.setMaxIdle(Integer.parseInt(maxIdle));
}
if (notEmpty(maxWait)) {
basicDataSource.setMaxWait(Integer.parseInt(maxWait));
}
}
return basicDataSource;
}
このコードの目的はibatisのsqlMapConfigを読み取ることである.xmlプロファイルの、このプロファイルの具体的なイメージは次のとおりです.
<transactionManager type="JDBC">
<dataSource type="DBCP">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL" value="jdbc:mysql://xxx" />
<property name="JDBC.Username" value="root" />
<property name="JDBC.Password" value="xxx" />
<property name="Pool.MaximumActiveConnections" value="15"/>
<property name="Pool.MaximumIdleConnections" value="15"/>
<property name="Pool.MaximumWait" value="1000"/>
<property name="Pool.RemoveAbandoned" value="true"/>
<property name="Pool.RemoveAbandonedTimeout" value="1"/>
<property name="asdfaf" value="1"/>
</dataSource>
</transactionManager>
ソースコードには、ibatisで構成できるdbcpの構成がいくつかしかありません.残りはdbcpのデフォルト値です.
String validationQuery = (String) map.get("Pool.ValidationQuery"); String maxActive = (String) map.get("Pool.MaximumActiveConnections"); String maxIdle = (String) map.get("Pool.MaximumIdleConnections"); String maxWait = (String) map.get("Pool.MaximumWait");
結論:私の漏れかどうかはわかりませんが、ソースコードを見ると確かにこの4つの構成項目しか処理されていません.他には言及されていません.実際に私に影響を及ぼした結果は私が
この2つの構成はibatisの阻害でdbcpは実際には見られないので、ibatisのこのバージョンがどうなっているのか本当に分かりませんが、DBPPを完全に使っていないような気がして、次のバージョンが改善されるかどうか分かりません.