在这里,把数据池配置好的方法写出来,希望能够让看到的人少走一点弯路.GOOD LUCK.
1 环境描述
JDK 1.5
Tomcat 6.0
MySQL 5.0
MySQL JDBC 5.0.5
Commons dbcp 1.4
2 准备工作
JDK, Tomcat, MySQL安装过程并非我们讲述的重点,略过。
从http://dev.mysql.com/downloads/下载mysql-connector-java-3.0.15-ga.zip,将其中的mysql-connector-java-3.0.15-ga-bin.jar放到jre/lib/ext和Tomcat 5.5/common/lib里面。
从http://jakarta.apache.org/commons/dbcp/下载commons-dbcp-1.2.1.zip,将其中的commons-dbcp-1.2.1.jar放到jre/lib/ext和Tomcat 5.5/common/lib里面。
3 配置Tomcat
配置{tomcat-home}/conf/server.xml文件,在 <GlobalNamingResources> </GlobalNamingResources>之间加入:
<Resource name="JDBC for MySQL"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
password="123456"
maxIdle="2" maxWait="5000"
username="root" url="jdbc:mysql://localhost/test" maxActive="4"/>
解释下:
1.数据池名为:JDBC for MySQL; 这个名字会在等下介绍的web.xml文件里使用.
2.username="root",我的mysql用户名使用root,密码password="123456".
3:url="jdbc:myslq://localhost/test",即使用的数据库为test(刚刚已经创建了);
4:maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
5:MaxActive,连接池的最大数据库连接数。设为0表示无限制。
6:maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
*maxActive:最大连接数据库连接数,设 0 为没有限制
*maxIdle:最大等待连接中的数量,设 0 为没有限制
*maxWait: 最大等待毫秒数, 单位为 ms, 超过时间会出错误信息
一般把maxActive设置成可能的并发量就行了maxActive、maxIdle和maxWait参数:
maxActive是最大激活连接数,这里取值为4,表示同时最多有4个数据库连接。maxIdle是最大的空闲连接数,这里取值为2,表示即使没有数据库连接时依然可以保持2空闲的连接,而不被清除,随时处于待命状态。MaxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可取值5000,表示5秒后超时。
4 配置web.xml文件.在你的应用(test)里,创建文件夹WEB-INF,在这个文件夹里创建文件web.xml.撰写
web.xml:如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app >
<resource-ref>
<description>MySQL Connection Pool</description>
<res-ref-name>JDBC for MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
这里用到了刚刚定义的数据他名:JDBC for MySQL了;
5 配置context.xml文件,在你的应用(test)里,创建文件夹META-INF,在这个文件夹里创建文件context.xml.撰写context.xml:如下:
<Context>
<ResourceLink name="JDBC for MySQL" global="JDBC for MySQL" type="javax.sql.DataSourcer"/>
</Context>
6 测试
重启Tomcat服务器,写一个index.jsp:
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<%@ page language="java" contentType="text/html;charset=gb2312" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" pageEncoding="GB2312">
<title>Test of MySQL connection pool</title>
</head>
<body>
<%
out.print("Start<br/>");
response.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
try{
String jndi_name="java:comp/env/JDBC for MySQL";
String select_user_sql="select * from student ";
Context ctx = new InitialContext();
if(ctx == null){
out.println("No context");
}
out.println("here<br>");
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup(jndi_name);
if(ds !=null){
out.println("can fine thd "+jndi_name+"<br>");
}
Connection conn = ds.getConnection();
out.println("MySQL connection pool runs perfectly!\n<br>");
Statement stmt = conn.createStatement();
ResultSet rt = stmt.executeQuery(select_user_sql);
while(rt.next()){
out.println(rt.getString("name")+"<br>");
}
conn.close();
}
catch(Exception ex){
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
</body>
</html>
在浏览器里查看,如果你看到可以看到,"MySQL connection pool runs perfectly!",恭喜你,你已经成功了...
友情提示:记得用完一定要close哦,不然一会儿资源就耗尽了。这一点可以通过以root身份登录MySQL,运行show processlist;命令来查看当前所有连接。
分享到:
相关推荐
在Tomcat6.0中配置JNDI,主要是为了实现应用中的数据源管理,使得多个应用可以共享一个数据库连接池,提高资源利用率和系统性能。 **一、JNDI的基本概念** JNDI提供了一个统一的接口,让开发者可以查找和绑定各种...
JSP文件在服务器端被编译成Servlet,并由Servlet容器(如Tomcat)执行。在配置JSP时,重点在于确保JSP引擎能够正确解析并执行JSP页面。这通常涉及到以下步骤: 1. **JSP Engine Configuration**: - 设置JSP引擎的...
在服务器端应用中,Java虚拟机(JVM)的性能优化至关重要,特别是对于像Tomcat这样的应用服务器而言,其性能直接影响到系统的响应速度和资源利用率。本文将详细介绍如何通过调整Tomcat启动参数来进行JVM的垃圾收集...
在`tomcat连接池设定.docx`文档中,可能包含以下几方面的配置: 1. **堆内存分配**:通过`-Xms`和`-Xmx`参数设定初始和最大堆内存,确保足够空间运行应用,但也不能过大以免占用过多系统资源。 2. **新生代和老年...
标题“Tomcat连接池应用例子”指的是在Java Web开发中,使用Tomcat内置的数据源(连接池)来管理与MySQL数据库的连接。Tomcat作为流行的Java应用服务器,提供了高效的连接池服务,帮助开发者优化数据库操作的性能和...
- **数据源配置:** 在`<Resource>`标签内配置JDBC连接池的信息,例如`driverClassName`、`url`、`username`和`password`等。 **3. 修改web.xml文件** - **过滤器、监听器配置:** 添加自定义过滤器或监听器,实现...
总结,配置Tomcat中的JNDI主要是为了方便和高效地管理数据库连接,通过在服务器端定义数据源,并在应用程序中通过JNDI查找和使用,可以极大地简化开发工作。理解并掌握这一过程对于任何使用Tomcat部署Java Web应用的...
【Tomcat的安装与配置】 Tomcat是一款广泛使用的开源应用服务器,特别适合于运行Servlet和JSP。作为Apache软件基金会的Jakarta项目的核心组件,Tomcat由Apache、Sun(现Oracle)和其他贡献者共同开发,提供了对最新...
3. **设置Servlet和JavaBean**:通过`<servlet>`和`<servlet-mapping>`标签在web.xml文件中配置Servlet,JavaBean则用于封装数据和业务逻辑。 接下来是MySQL数据库的连接。MySQL以其高速度、稳定性以及易于管理而被...
当我们谈论"Tomcat7集群扩展session集中管理,redis配置"时,我们实际上是在讨论如何在多个Tomcat服务器实例之间共享用户session,以确保用户在集群中的任意节点间切换时能够保持会话状态。这里采用的技术是将...
以上只是JSP、Java、Tomcat配置的基本知识框架,实际开发中还需要掌握更多高级特性,如JSTL、EL表达式、MVC框架(如Spring MVC)、数据库连接池等。通过深入学习和实践,你可以构建出高效、稳定的Web应用。
4. **数据源监控**:提供数据源的实时监控,包括连接池的状态、活动连接数、空闲连接数、最大连接数等,有助于优化数据库连接管理。 5. **线程分析**:展示当前服务器上的线程信息,包括线程ID、状态、堆栈跟踪等,...
在Tomcat端,需要配置server.xml,添加mod_jk的AJP连接器。 **五、实例应用** 在提供的压缩包中,可能包含了一个具体的mod_jk配置示例,包括Apache和Tomcat的配置文件。通过分析这些文件,我们可以更深入地了解如何...
当用户在浏览器端设置session键值时,这些数据会被持久化到Redis中,之后无论用户请求哪个Tomcat实例,都能从Redis中获取到相同的session信息,保证了用户体验的一致性。这样的架构对于大型网站和分布式应用来说,既...
5. **性能优化**:Tomcat提供了多线程模型和连接池来处理并发请求,可以通过调整`Connector`的`maxThreads`和`minSpareThreads`等参数来优化性能。同时,使用NIO(非阻塞I/O)连接器可以在高并发场景下提高效率。 6...
- **JNDI(Java Naming and Directory Interface)**:提供服务发现和数据存储功能,常用于配置数据库连接池。 - **连接器选择**:支持多种HTTP连接器,如NIO、APR(Apache Portable Runtime),优化I/O性能。 - **...
1. 简便快捷:免安装版的Tomcat只需要将下载的zip或tar.gz文件解压到任意目录,配置好相关的环境变量,即可启动服务,大大简化了部署流程。 2. 自由移动:由于无需在系统注册表中留下信息,免安装版可以方便地在...
8. **JNDI与连接池**:理解Tomcat如何管理数据库连接,以及配置数据源。 9. **性能调优**:包括调整线程池大小、内存分配等优化策略。 10. **故障排除**:常见错误的解决方案,以及如何定位和解决问题。 综合以上...
3. **修改Context配置**:在Tomcat的`context.xml`或每个Web应用的`WEB-INF/context.xml`中,配置`Manager`元素来使用`org.apache.catalina.session.PersistentManager`或其他支持Redis的Session Manager实现,例如`...