Tomcat中JNDI数据源配置策略:私有与全局应用

需积分: 45 3 下载量 178 浏览量 更新于2024-09-10 1 收藏 20KB DOCX 举报
"本文主要介绍了在Tomcat环境中配置JNDI数据源的两种常见方式,针对不同的应用场景提供适配的解决方案。" 一、在Tomcat服务端配置JNDI数据源 1. 单个应用独享数据源 如果是使用Eclipse进行部署的Tomcat工程,可以在server.xml文件的`<Context>`元素之间添加私有数据源。例如,这里以C3P0连接池为例: ```xml <Resource name="jndiName" scope="Shareable" type="com.mchange.v2.c3p0.ComboPooledDataSource" factory="org.apache.naming.factory.BeanFactory" user="pual_dev" password="1" driverClass="oracle.jdbc.driver.OracleDriver" jdbcUrl="jdbc:oracle:thin:@10.120.20.62:1521:HQDBWU" minPoolSize="2" maxPoolSize="5" initialPoolSize="3" maxIdleTime="10" acquireIncrement="15" maxStatements="0" idleConnectionTestPeriod="10" acquireRetryAttempts="30" breakAfterAcquireFailure="true" testConnectionOnCheckout="false"/> ``` 这里定义的`name`属性用于标识数据源,`type`指定了数据源的类型,其他属性则对应JDBC连接的相关设置。 2. 配置全局JNDI数据源 对于MyEclipse等工具部署的Tomcat工程,如果希望所有部署的应用都能共享同一数据源,应在`<GlobalNamingResources>`元素内添加全局数据源,如下所示: ```xml <Resource name="jndiNameTwo" auth="Container" type="javax.sql.DataSource" maxActive="..." ...> <!-- 其他全局数据源属性 --> </Resource> ``` `auth="Container"` 表示数据源由容器管理,`maxActive`等属性控制连接池的最大活动连接数,具体值需根据应用需求调整。 二、选择配置方式 - 如果项目是独立部署,且每个应用需要有自己的数据源配置,那么可以选择第一种单个应用独享的数据源方式。 - 如果项目是多应用共享环境,或者希望通过统一管理来简化资源维护,那么全局JNDI数据源是更好的选择,因为这样可以减少重复配置,并便于后期维护。 配置JNDI数据源在Tomcat中是确保应用能够动态访问数据库资源的关键步骤,理解并根据项目特性选择合适的配置方式,可以提升开发效率并确保系统的稳定运行。