如果我将一个网络应用程序部署到 Tomcat,并且有这样的代码:
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("jdbc/myDB");
如何将此 DataSource
指定为 PoolingDataSource
?如何配置池 (GenericObjectPool
) 以注入(inject) PoolingDataSource
?
或者,这是 Tomcat 的 JNDI 实现的默认行为吗?
最佳答案
只需配置连接池设置(maxActive、maxWait、maxIdle、...)。 Tomcat 带有 apache commons-dbcp 库。它被重新打包为 $CATALINA_HOME/lib/tomcat-dbcp.jar。
有关详细信息,请查看 tomcat 文档:http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html#Database_Connection_Pool_%28DBCP%29_Configurations
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest"/>
</Context>
关于java - 如何从 Tomcat 的 JNDI 获取 PoolingDataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606988/