Tomcat 中Jndi是使用Tomcat自带的连接池,由于客户要求,抛弃Tomcat自带的连接池。使用c3p0 。经过几个小时调试,解决方案如下:
环境:Tomcat 6
下面来看Jndi 与 c3p0 结合:
下载地址:http://nchc.dl.sourceforge.net/sourceforge/
c3p0/c3p0c3p0-0.9.0.4.bin.zip
把 c3p0-0.9.0.4.jar 放到应用服务的%tomcat6%/lib目录下。如:
1.在context.xml中<Context></Context>内加<Resource />,完整的示例:
<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- 下面注释部分为使用jndi+tomcat自带的连接池-->
<!--<Resource name="jdbc/ctitc" type="javax.sql.DataSource"
username="business" password="ctitc" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:FJTDC"
maxIdle="30" maxWait="5000" maxActive="100"/>
-->
<!-- 下面注释部分为使用jndi+c3p0-->
<Resource name="jdbc/ctitc"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
maxPoolSize="50" minPoolSize="2" acquireIncrement="2"
factory="org.apache.naming.factory.BeanFactory"
user="user" password=""
driverClass="oracle.jdbc.driver.OracleDriver"
jdbcUrl="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"
/>
</Context>
2.在web.xml添加:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/ctitc</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.与spring结合,代码如下
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/ctitc"/>
</bean>
4.使用oracle数据库的rac插件时url地址的写法
两台小机没做os集群,只做了oracle RAC,A机虚拟ip为192.168.30.51,标识符为kms1;B机虚拟ip为192.168.30.52,标识符为kms2。关键的连接字符串如下:
url=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.30.51)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.30.52)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = yes)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = kms)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))
注:不同的版本有不同的连接方式,tomcat5.5版本的连接方式参见
http://chenlb.blogjava.net/archive/2007/03/18/104571.html#
分享到:
相关推荐
本示例主要讲解如何在Tomcat6中结合JNDI(Java Naming and Directory Interface)和C3P0库来配置数据库连接池,这对于初学者理解Web应用服务器与数据库的交互方式具有很大帮助。 首先,C3P0是一个开源的JDBC连接池...
6. C3P0的配置也需在Spring配置文件中进行,包括数据源的初始化大小、最大连接数等。 7. 启动Tomcat服务器,访问应用的URL以查看应用是否正常运行。 通过这个简单的示例,你可以了解到如何将这些组件整合在一起,...
【描述】中的XML配置片段展示了在Spring框架中配置一个通过JNDI查找的数据源,这正是Tomcat统一配置C3P0连接池的一个关键步骤。`<bean id="dataSource2" class="org.springframework.jndi.JndiObjectFactoryBean">`...
例如,Tomcat、JBoss等应用服务器都支持JNDI配置C3P0、DBCP等连接池。 4. DBCP(Database Connection Pool): DBCP是Apache Commons的一个项目,基于Jakarta-pool实现的数据库连接池。它简单易用,但相比于C3P0和...
- 为了提高性能,可以考虑使用连接池,如C3P0、HikariCP等。大多数应用服务器都支持将这些连接池作为JNDI数据源的实现。 总之,配置Spring中的JNDI数据源是实现灵活且可扩展的数据库连接管理的关键步骤。理解这一...
- 相比于Tomcat JDBC Connection Pool,c3p0更适合小型项目,大型项目可能会倾向于选择更高效、更活跃维护的连接池。 7. **常见问题与解决方案** - 如果出现“Too many connections”错误,可能是因为`maxPool...
C3p0是一款开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,C3p0可以帮助我们管理数据库连接,提高数据库访问效率,减少系统资源的消耗。下面我们将详细探讨C3p0的...
在Web应用中,c3p0常与Servlet容器(如Tomcat)结合使用,通过容器的JNDI服务管理数据源。这样,多个应用组件可以共享同一个数据源,提高资源利用率。 **五、c3p0版本及更新** 在给定的压缩包文件`c3p0-0.9.2-pre1...
6. **C3P0数据源**: C3P0 是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0提供了一套完善的连接池管理策略,如连接池的初始化、测试、回收等,提高了数据库操作的性能和...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。 JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和...
2. **c3p0-0.9.1.jar**:C3P0是一个JDBC连接池,提供数据库连接的管理和优化。 3. **commons-**系列库:Apache Commons是包含各种实用工具类的项目,如collections、beanutils和digester,它们简化了Java开发中的...
spring.datasource.c3p0.jdbc-url=jdbc:mysql://localhost:3306/mydb spring.datasource.c3p0.username=myuser spring.datasource.c3p0.password=mypassword ``` 然后在Spring的配置类中,我们可以注入DataSource并...
C3P0是一款开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。以下是配置C3P0连接池的步骤: 1. 添加依赖:在项目的pom.xml文件中添加C3P0的Maven依赖。 2. 创建配置文件:在Tomcat的...
C3P0 类包位于 `<spring_home>/lib/c3p0-0.9.x.jar`,C3P0 是一个开源的 JDBC 连接池,它实现了数据源和 JNDI 绑定,支持 JDBC3 规范和 JDBC2 的标准扩展。下面是如何使用 C3P0 配置数据源的示例: xml 代码 Xml ...
最后,对于大型应用,考虑监控连接池的性能和状态,可以使用像Spring Boot Actuator这样的工具,或者直接通过C3P0提供的监控端点进行监控。 在实际开发中,确保正确配置连接池参数以适应应用的负载需求,避免资源...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的特点包括自动检测并修复损坏的连接、支持多线程的公平分配以及连接池的细粒度控制。其优点是功能全面,但缺点在于...
在Spring框架中,可以使用`c3p0`或`dbcp`作为数据源,通过`Bean`配置或者Java配置来设定这些参数。 总结来说,Java通过JDBC和数据库连接池提供了高效、灵活的数据库访问方式。在实际应用中,选择合适的连接池可以...
- 使用连接池(如C3P0或Apache DBCP)优化数据库访问性能。 - 缓存JSP编译结果以减少编译开销。 7. **故障排查**: - 查看日志文件定位问题。 - 使用`jstack`和`jmap`等JDK工具分析Tomcat进程状态。 - 使用...