Tomcat中连接池的配置和使用

Tomcat数据库连接池的配置与使用(MySQL) 在本文中,我们将探讨如何在Tomcat中配置和使用MySQL数据库连接池。数据库连接池是一种管理数据库连接的机制,它可以提高应用程序的性能和可伸缩性。我们将学习如何配置Tomcat的context.xml文件以及在Java代码中使用连接池。通过使用连接池,您可以提高应用程序的性能和可伸缩性,并更好地管理数据库连接。首先,我们需要编辑Tomcat的context.xml文件,该文件位于Tomcat安装目录的conf目录下。现在,我们将学习如何在Java代码中使用配置的数据库连接池。属性用于定义连接池的行为。 阅读详情
对于大型网站来说,信息查询的次数会非常多,每次查询都需要这样的过程:加载驱动程序、创建连接、创建语句对象、执行SQL语句、关闭这些对象。建立与数据库之间的连接和释放连接会占用很多系统的时间。如果能够让所有用户共享连接,仅仅创建一次连接,谁需要连接谁就使用,这样可以大大减少创建连接所占用的时间。让所有用户共享连接,并且在需要的时候就能够使用,就需要有专门的机制来创建连接,数据库连接池(Dababase Connection Pool,简称DBCP)技术就是来解决这个问题的。
DBCP能够集中管理Web应用中的所有连接,提前创建好若干到数据库的连接,用户需要的时候从连接池中获取一个连接,用完之后重新把连接放回连接池。要使用DBCP,首先需要配置JNDI数据源。
配置JNDI数据源
DBCP可以使用很多技术实现,本书介绍的是比较流行的Jakarta-Commons的DBCP。
使用连接池的时候,存在一个问题。Web应用必须显式的关闭结果集对象、语句对象、连接对象,如果关闭失败,将导致这些对象不能重用。可能还会导致在连接使用完的时候,Web应用无法连接到数据库。
Jakarta-Commons的DBCP提供了一种机制,能够跟踪和恢复那些不能被管理的连接。要想跟踪和恢复那些不能被管理的连接,需要在配置数据源的时候增加下面的代码:
removeAbandoned="true"
当可用的连接数比较少的使用,连接池会查找并重复使用这些不能被管理的连接。可以使用removeAbandonedTimeout属性设置一个连接空闲多少秒之后被认为是已经被放弃的,默认值是300秒。如果想改为60秒,可以使用下面的代码:
removeAbandonedTimeout="60"
可以设置logAbandoned属性来记录没有正确释放连接的代码:
logAbandoned="true"
配置server.xml
server.xml文件在Tomcat安装目录的conf子目录下。在</host>之前增加下面的代码:
<Context path="/bookstore" docBase="bookstore"
        debug="5" reloadable="true" crossContext="true">
 <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/bookstore?autoReconnect=true"/>
</Context>
各属性的含义如下:
1       maxActive: 池中连接的最大数目。要确保把mysql的最大连接数大于这个值。如果为0,则没有最大数量限制。
2       maxIdle: 池中最大空闲数据库连接数。如果为-1,则没有限制。
3       axWait: 等待一个连接变成可用的最长时间,单位是ms,这个例子中是10秒,如果超时将抛出异常。如果设置为-1,将无限等待
4       username 和 password: 连接MySQL数据库的用户名和口令
5       driverClassName: MySQL数据库的JDBC驱动程序的名字,这里驱动的名字是com.mysql.jdbc.Driver。
6       url: JDBC连接MySQL数据库的url。参数autoReconnect=true确保连接池能够重新连接,如果8个小时没有操作,mysql管理器会关闭连接。
配置web.xml
需要为当前应用配置web.xml。主要作用是声明数据源。代码如下:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
 <description>MySQL Test App</description>
 <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
 </resource-ref>
</web-app>
使用连接池访问数据库
使用连接池访问数据库与使用JDBC直接访问数据库的过程基本相同,只是得到连接的方式不同。
下面的代码展示了在使用连接池的时候,如果获取到数据库的连接。
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
Connection conn = ds.getConnection();
 
Tomcat配置高效数据源连接池HikariCP指南 HikariCP在设计时注重性能和轻量级。其源码简单、易于理解,并且经过优化以减少CPU的使用率。HikariCP使用了大量现代Java技术,如Java 8的Optional、Lambda表达式以及并发集合等,使得它能够在并发环境下提供更好的性能。低内存占用:与其他连接池相比,HikariCP的内存占用较小,它不会创建大量的后台线程。高速连接获取:HikariCP提供了最快的连接获取和友好的重试机制。简单的配置:尽管功能强大,但HikariCP的配置却异常简单。 阅读详情

相关推荐

Tomcat连接池配置及优化实战指南

数据库连接池是一种资源池化技术,用于管理数据库连接的复用和缓存。在多用户应用中,频繁的开启和关闭数据库连接会消耗大量的系统资源和时间,影响系统的性能和响应速度。连接池通过预先建立一定数量的连接,并维护这些连接,可以显著减少数据库连接的创建和销毁次数。连接池中的关键参数包括::连接池启动时创建的连接数。maxActive:连接池中允许的最大连接数。maxIdle:连接池中最大的空闲连接数。minIdle:连接池中最小的空闲连接数。maxWait。

weixin_35815766的博客 1390

Tomcat内置连接池管理

Tomcat内置连接池使用的是dbcp。 首先:要想将一个dbcp连接池让 tomcat管理,只需要创建一个context.xml配置文件,在配置文件中配置相关信息。<Context> <Resource name="jdbc/EmployeeDB" auth="Container"type="javax.sql.DataSource"username="root"password=

WJB08223的专栏 1387

产业大脑+未来工厂:揭秘浙江数字经济系统的5大核心场景搭建指南

本文深入解析了“产业大脑+未来工厂”这一浙江数字经济系统的核心范式,并提供了五大核心场景的实战搭建指南。文章详细阐述了从供应链协同、产能共享到产品创新、质量追溯及绿色低碳等关键场景的构建逻辑与技术架构,旨在帮助企业实现从技术驱动到场景驱动的价值落地,破解数据孤岛难题,提升产业链整体效能。

mac99的博客 667

Tomcat启动报错,连接连接池没反应

今天tomcat启动的时候在服务器上面看到在加载连接池加载不动了。 一想到上面的情况的话,我们就可以知道一定是数据库的连接出了问题,估计是数据库的IP,端口,账号,密码的问题。

Coder的不平凡 4387

Android14_MTK调试LCD屏功能

android14 MTK平台调试LCD屏

m0_37786046的博客 1473

R语言实战:5分钟搞定NHANES数据库的加权分析与可视化(附完整代码)

本文提供了一份R语言实战指南,帮助研究者在5分钟内完成NHANES数据库的加权分析与可视化。通过详细的代码示例,涵盖数据获取、清洗、加权分析和可视化全流程,特别适合公共卫生和流行病学研究者快速掌握复杂抽样数据的处理方法。

www00的博客 256

Tomcat管理员界面输入用户名密码无效的问题

将开头的cp65001改为cp936。

大尾巴鱼的博客 1655

基于Arduino 的 FM 调频收音机

这是一个基于 Arduino 的开源的收音机项目,它具备一台标准收音机的全部功能,从控制部分到外壳都可以自己 DIY。在项目中,我们将介绍让 FM 收音机调谐器的 RDA5807 模块与 I2C 协议进行通信的方法,整个过程只需要两根线就可以与 IC 通信,接线非常简单。3D 打印的外壳也非常简洁。总之,是个非常简单和实用的项目,来试试吧!

ByteBox的博客 1643

Tomcat使用数据库连接池数据库

数据库连接池在初始化时将创建一定数量的数据库连接,具体数量的由连接池的最小数据库连接数来设定。无论这些数据库是否被使用,连接池都将确保至少拥有这些数量的连接。同时,连接池可以根据池中连接的使用率,动态增加或减少池中的连接数。Java程序访问数据库时,只需从连接池中取出空闲状态的数据库连接,当程序访问数据库结束时,再将数据库连接返回给连接池,这样做可以提高访问数据库的效率。已经创建但尚未分配出去的连接被存放到一个空闲池中,每当用户请求一个链接时,系统首先检查空闲池内有没有空闲连接。

zouzxxi的博客 4659

多智能体强化学习MATD3算法完整复现与分析

多智能体强化学习MATD3算法复现与分析摘要 MATD3算法是多智能体深度强化学习领域的重要进展,通过改进MADDPG算法,引入双Q学习、延迟策略更新和目标策略平滑等技术,显著提升了算法稳定性。本文完整复现了MATD3算法,详细解析了其数学原理,包括部分可观测马尔可夫博弈模型和TD3核心思想。在实现层面,设计了集中式Critic和分布式Actor的神经网络架构,采用PyTorch框架构建了Actor-Critic网络模块,包含精心设计的权重初始化和训练流程。该算法有效解决了多智能体环境中的非平稳性、信用分配

max500600的博客 533

注意力机制模块:CA(坐标注意力)二次创新:融合深度可分离卷积,打造 CADS 模块

本文提出CADS模块,将坐标注意力(CA)与深度可分离卷积(DSC)深度融合,优化移动端AI部署效率。通过重构CA的计算范式,用深度卷积替代传统1×1卷积,在保持精度的同时显著降低计算开销。文章深入分析了CA的计算瓶颈和DSC的实际效率问题,详细阐述了CADS的设计原理与PyTorch实现,并提供了多组性能对比数据。该模块可直接应用于YOLO、UNet等主流模型,为移动端AI部署提供高效解决方案。

ZXSXJ的博客 96

tomcat连接池的配置

     连接池的简单原理就是将数据库连接对象储存到集合中. 1.tomcat管理界面的配置,去官网找到tomcat管理包,将apache-tomcat-5.5.23-admin.zip解压,将解压后的目录拷贝到tomcat相应的目录下(把它copy到apache-tomcat-5.5.25/server/webapps/目录下) 2.   配置用户,编辑TOMCAT-HOME

武金剑的专栏 649

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

天天酷科研的博客 3190

Tomcat连接池配置

<br />Tomcat连接池配置,如此简易<br />         最近一个朋友,发了一个异常消息.给我看,说他的Tomcat6,配置数据源连接池。怎么的都不成功. 他说他在网上看了很多相关资料。那些资料都说可以配置成功.但是他照着资料详细配置的,还是不行.<br /> 下面是他发的异常:Java代码  严重: Servlet.service() for servlet jsp threw exception  org.apache.tomcat.dbcp.dbcp.SQLNestedExceptio

Thomastang2012的专栏 1073

【华为OD机试真题 Python语言】371、增强的strstr | 机试真题+思路参考+代码解析(E卷复用)

>C语言有一个库函数: char *strstr(const char *haystack,const char *needle) ,实现在字符串haystack中查找第一 次出现字符串needle的位置,如果未找到则返回null >  现要求实现一个strstr的增强函数,可以使用带可选段的字符串来模糊查询,与strstr一样返回首次查找到的字符串位置 >  可选段使用"[]"标识,表示该位置是可选段中任意一个字符即可满足匹配条件,比如"a[bc]"表示可以匹配"ab"或"ac" >&

KJ.JK 2607

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

关于TOMCAT配置多个连接池的问题

关于TOMCAT配置多个连接池 如果是TOMCAT5的话META-INF下的context.xml对这段进行修改      name="jdbc/aa"      type="javax.sql.DataSource"      driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"      password="123456"

蓝品的专栏 2169

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

tomcat6,7配置连接池

以往Tomcat5.0的连接池配置是在http://localhost:8080/admin/下进行的非常方便,可是5.0以后的版本里面Tomcat就没有把admin集成到程序中了。 Tomcat5.5的admin可以在apache官方网站上下到,也可以通过admin里面的提示信息进行配置。   可是Tomcat6.0和7.0以后就没有admin管理界面了。这个时候配置连接池就必须手动配置了

一名系统架构师的征途 2677

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

TOMCAT中连接池的配置

创建TOMCAT连接池的目的是在TOMCAT启动的时候可以产生足够多的数据库连接,并提供给程序使用 通过连接池,可以提高程序的运行速度,同时也节省内存,提高服务器的效率,能够支持更多的用户连接,连接的建立,断开 都有连接池来管理,当程序需要建立连接,只需要从内存中取一个来用,不用新建。 如何是连接池的配置,只需将其放在CONF/SERVER.XML文件中的&lt;host&gt;&lt;/h...

我的JAVA 182

在TOMCAT上配置连接池

在TOMCAT上配置连接池一.配置数据源:使用TOMCAT提供的JNDI将数据源对象注册为一个命名服务,然后在系统中使用JNDI提供的接口按照名称查询得到对应的数据源。1.  安装DBCP(Database Connection Pool)数据源TOMCAT默认自带的三个JAR文件:(TOMCAT_HOME/common/lib目录下)Commons-dbcp-1.1.ja

echo 'narcissus' 2038

Tomcat配置SQLServer连接池

参考文章:http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html配置TOMCAT5.5.X连接池  1.       进入tomcat目录下的conf文件夹目录里,找到Server.xml在tomcat的Server.xml文件中在标签与标签里,定议连接语句,格式如下定议你的应用程序的目

没有天赋的IT人 2053

Tomcat中数据库连接池的配置

 JSP中tomcat的SQL Server2000数据库连接池的配置环境:1. 数据库:Microsoft SQL Server 20002. 数据库驱动程序:net.sourceforge.jtds.jdbc.DriverJNDI(Java Naming and Directory Interface)概述:Tomcat4(5)提供了一个与Java Enterprise Edition应用

Darren的专栏 1587

tomcat中连接池的配置

今天花了大半天的时间才把tomcat5.5.17下的连接池问题搞定。趁着思路还没被打断,把有些总结记录下来。 there is a datasourceProject,and there is a context file under %TOMCAT_HOME%/conf/Catalina/localhost/ ,where TOMCAT_HOME is the dirctory tomcat

teddylu的专栏 1393

配置tomcat下的连接池

    配置tomcat下的连接池说实话是个即简单又复杂的过程,我在配置过程中先后遇到了至少3种以上奇怪的错误,现总结经验,把配置过程总结如下:1、配置%tomcat_home%/conf/Catalina/localhost/xxx.xml文件,其中xx代表你的web应用目录,缺省是ROOT5.0.x              factory      org.apache.commons.db

ywb1973的专栏 1232

mysql,tomcat环境下jdbc连接池配置

首先先对tomcat中的一些配置文件进行修改 1、创建数据库shixun 2、配置server.xml文件。Tomcat安装目录下conf中server.xml文件。 <Resource name="jdbc/DBPool" type="javax.sql.DataSource" password="" drive

Tro_picana的专栏 1348

在 Spring Boot 上配置 Tomcat 连接池

Spring-Boot 支持 HikariCP(默认)、tomcat-jdbc 和 Commons DBCP 作为数据库的连接池。但是,每个池都使用一组不同的属性。在本教程中,我们将学习如何配置 Tomcat 连接池。 配置 Tomcat JDBC 连接池 首先,要配置 Tomcat 连接池,您需要在application.properties文件的“spring.datasource.tomcat”命名空间中添加属性。这是一个例子: spring.datasource.tomca..

allway2的博客 4104
上一篇: EJB3 Web 客户端——NetBeans IDE和Sun应用服务器
下一篇: WebLogic中连接池错误Failed to Generate Wrapper Class的解决方案
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值