Java 如何从Tomcat';s JNDI
如果我将一个web应用部署到Tomcat,并使用如下代码:Java 如何从Tomcat';s JNDI,java,tomcat,database-connection,jndi,Java,Tomcat,Database Connection,Jndi,如果我将一个web应用部署到Tomcat,并使用如下代码: Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("jdbc/myDB"); 如何将此数据源指定为池数据源?如何配置池(GenericObjectPool)以将PoolgDataSource注入 或者,这是Tomcat的JNDI实现的默认行为吗?提前谢谢 只需配置连接池设置(maxActive、maxWait、maxIdle等)。 To
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("jdbc/myDB");
如何将此数据源
指定为池数据源
?如何配置池(GenericObjectPool
)以将PoolgDataSource
注入
或者,这是Tomcat的JNDI实现的默认行为吗?提前谢谢 只需配置连接池设置(maxActive、maxWait、maxIdle等)。 Tomcat附带apache commons dbcp库。它被重新打包为$CATALINA_HOME/lib/tomcat-dbcp.jar 查看tomcat文档了解详细信息:
JDBC连接池org.apache.tomcat.JDBC.Pool
是替代品还是替代品
连接池
GlobalNamingResources
部分的server.xml
文件中添加如下内容:
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="100"
minIdle="10"
maxWait="10000"
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="true"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="root"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mysql"/>
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="100"
minIdle="10"
maxWait="10000"
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="true"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="root"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mysql"/>
<ResourceLink global="jdbc/TestDB" name="jdbc/TestDB"
type="javax.sql.DataSource"/>