楼上批评的是!我对DBCP了解的不多,多TOMCAT也研究的不深!我的问题只是想知道DBCP是否能完全满足我的需求,如果能我想把原有系统依赖服务器提供商的连接池换成DBCP!
我现在的代码是这样的,有哪里不妥的请大家批评指正!
System.setProperty(
Context.INITIAL_CONTEXT_FACTORY,"org.apache.naming.java.javaURLContextFactory");
System.setProperty("removeAbandoned", "true");
InitialContext ic = new InitialContext();
// Construct DriverAdapterCPDS reference
Reference cpdsRef =new Reference(
"org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS",
"org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS",
null);
cpdsRef.add(new StringRefAddr("driver", "COM.ibm.db2.jdbc.app.DB2Driver"));
cpdsRef.add(new StringRefAddr("url", "jdbc:db2:dnerp"));
cpdsRef.add(new StringRefAddr("user", "ies"));
cpdsRef.add(new StringRefAddr("password", "ies"));
ic.rebind("cpds", cpdsRef);
// Construct PerUserPoolDataSource reference
Reference ref =new Reference("org.apache.commons.dbcp.datasources.PerUserPoolDataSource",
"org.apache.commons.dbcp.datasources.PerUserPoolDataSourceFactory", null);
ref.add(new StringRefAddr("dataSourceName", "cpds"));
ref.add(new StringRefAddr("defaultMaxActive", "3"));
ref.add(new StringRefAddr("defaultMaxIdle", "30"));
ref.add(new StringRefAddr("defaultMaxWait", "10000"));
ic.rebind("peruser", ref);
// Use
InitialContext ic2 = new InitialContext();
pooledDataSource = (DataSource) ic2.lookup("peruser");
再次感谢dengyin2000 和bluepure !