关于连接池的配置

十二、连接池线程池配置——HttpClient连接池 3.x、4.x 和 5.x API 是完全不兼容的,使用起来比较麻烦。在 HttpClient 的执行过程中,连接复用是一个关键的性能优化点。通过合理配置连接池参数、正确处理连接的使用和释放,以及关注连接池的生命周期和性能监控,可以有效提高。下面是对连接池源码的重要步骤分析,包括连接的复用和非复用情况的处理,以及连接池内部的数据结构。此异常通常表示连接池中的连接用尽,导致无法获取到可用连接。这种状态表示线程在等待连接池中的连接。时,到每个主机的并发最多只有 200,但总的并发连接数为 300。 阅读详情

下面分别以Tomcat5.0和Tomcat5.5/6.0为例,介绍连接池在Tomcat中的配置和使用方式。

一、Tomcat5.0

A.将数据库的JDBC直联包放入TOMCAT_HOME/common/lib中

B.配置TOMCAT_HOME/conf/server.xml文件,在<Service><Engine>段中加入一个DefaultContext       <DefaultContext>         <Resource auth="Container" name="jdbc/achieve" type="javax.sql.DataSource"/>         <ResourceParams name="jdbc/achieve">           <parameter>             <name>factory</name>             <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>           </parameter>           <parameter>             <name>driverClassName</name>             <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>           </parameter>           <parameter>             <name>url</name>             <value>jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs</value>           </parameter>           <parameter>             <name>username</name>             <value>sa</value>           </parameter>           <parameter>             <name>password</name>             <value></value>           </parameter>           <parameter>             <name>maxActive</name>             <value>30</value>           </parameter>           <parameter>             <name>maxIdle</name>             <value>10</value>           </parameter>           <parameter>             <name>maxWait</name>             <value>10000</value>           </parameter>         </ResourceParams>       </DefaultContext>

C.在JSP或servlet中使用JNDI查找服务 <%@ page contentType = "text/html; charset=gb2312" %> <%@ page import = "java.sql.*" %> <%@ page import = "javax.naming.*" %> <%@ page import = "javax.sql.*" %> <html> <head><title>test</title></head> <body> <% Context ctx=null; DataSource ds=null; Connection conn=null; PreparedStatement stmt=null; ResultSet rs=null;

 ctx = new InitialContext();  if( ctx == null )   out.println("no context");  ds = (DataSource) ctx.lookup("java:comp/env/jdbc/achieve");  if( ds == null )   out.println("no datasource");  conn = ds.getConnection();  stmt = conn.prepareStatement("select * from jobs");  rs = stmt.executeQuery();  while(rs.next()){   out.print(rs.getString(2));   out.print("<br/>");  }  if( rs != null )   rs.close();  if( stmt != null )   stmt.close();  if( conn != null)   conn.close();  if( ctx != null )   ctx.close();

%> </body></html>

D.常见问题

Q:出现javax.naming.NameNotFoundException: Name jdbc is not bound in this Context A: 在yourWebApp/WEB-INF/web.xml中增加     <resource-ref>         <description>jdbc/achieve</description>         <res-ref-name>jdbc/achieve</res-ref-name>         <res-type>javax.sql.DataSource</res-type>         <res-auth>Container</res-auth>     </resource-ref>

 

Q:出现org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '?' for onnect URL 'null'

A: 在%TOMCAT_HOME%/conf/Catalina/localhost下找到你的web应用对应的.xml文件,如test.xml,并在此文件的下添入代码: <Context path="/sun" docBase="sun" debug="5" reloadable="true" crossContext="true">   <ResourceLink name="jdbc/achieve" global="jdbc/achieve" type="javax.sql.DataSource"/> </Context>

重启tomcat。

二、Tomcat5.5/6.0

A.将数据库的JDBC直联包放入TOMCAT_HOME/common/lib中,6.0在TOMCAT_HOME/lib

B.配置TOMCAT_HOME/conf/context.xml文件,在<context>段中加入     <Resource name="jdbc/achieve" auth="container" type="javax.sql.DataSource"  maxActive="30" maxIdle="10" maxWait="10000" username="sa" password=""  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"  url="jdbc:sqlserver://localhost:1433;databasename=pubs"/>

C.(可以不做这一步)在工程的WEB-INF/web.xml中增加     <resource-ref>         <description>jdbc/achieve</description>         <res-ref-name>jdbc/achieve</res-ref-name>         <res-type>javax.sql.DataSource</res-type>         <res-auth>Container</res-auth>     </resource-ref>

D.在JSP或servlet中使用JNDI查找服务 <%@ page contentType = "text/html" pageEncoding="utf-8" %> <%@ page import = "java.sql.*" %> <%@ page import = "javax.naming.*" %> <%@ page import = "javax.sql.*" %> <html> <head><title>test</title></head> <body> <% Context ctx=null; DataSource ds=null; Connection conn=null; PreparedStatement stmt=null; ResultSet rs=null;

 ctx = new InitialContext();  if( ctx == null )   out.println("no context");  ds = (DataSource) ctx.lookup("java:comp/env/jdbc/achieve");  if( ds == null )   out.println("no datasource");  conn = ds.getConnection();  stmt = conn.prepareStatement("select * from jobs");  rs = stmt.executeQuery();  while(rs.next()){   out.print(rs.getString(2));   out.print("<br/>");  }  if( rs != null )   rs.close();  if( stmt != null )   stmt.close();  if( conn != null)   conn.close();  if( ctx != null )   ctx.close();

%> </body>

</html>

十二、连接池线程池配置——数据库连接池 在应用系统开发中,池化技术(如对象池、连接池、线程池)被广泛使用,通过复用来减少资源消耗和提升性能。连接池(如数据库连接池、Redis连接池、HTTP连接池)主要通过复用TCP连接来提高效率。本文主要介绍数据库连接池(DBCP)、HTTP连接池(HttpClient)和线程池的配置。 数据库连接池是用来管理数据库连接的技术,可以显著提高应用程序的性能和响应速度。常见的数据库连接池实现有C3P0、DBCP、Druid等。下面以为例进行详细讲解。 使用yaml配置实例如下,万卷不离其宗: 配置说明数据库连接配置 阅读详情

相关推荐

Tomcat连接池配置与服务器

在本文中,我们将详细介绍如何在Tomcat服务器上配置连接池。连接池是一种管理数据库连接的机制,它能够显著提高应用程序的性能和可扩展性。以下是配置连接池的详细步骤和相应的源代码示例。通过上述步骤,你已经成功地在Tomcat服务器上配置了连接池。你可以根据自己的需求修改连接池的配置参数,例如最大连接数、最大空闲连接数和最大等待时间等。连接池将会自动管理连接的创建和释放,从而提供更好的性能和资源利用率。如果还没有安装Tomcat,请按照Tomcat官方文档的指导进行安装和配置。在你的应用程序中使用连接池。

YbeCoder的博客 472

配置Tomcat7.1数据库连接池

数据库连接池 连接池是一个可以存储多个数据库连接对象的容器,当程序需要连接数据库时,可直接从连接池中获取一个连接,使用结束时将连接还给连接池。这样一个连接可以被很多程序共享,无需每次与数据库交互都进行一次连接与断开操作。

我的博客 4445

Tomcat配置数据库连接池

本例为myeclipse+tomcat7.0+server’);” target=”_self”>sqlserver2008配置数据库连接池   具体步骤:   1、在server.xml中设置数据源,以sql server 2008数据库为例,如下:   在<GlobalNamingResources> </GlobalNamingResources>节点中加入, <Resource name=jdbc/DBPool type=javax.sql.DataSource password=aaaaaa driverClassName=com.microsoft.s

tomcat6 数据库连接池配置方法总结

数据库连接是一种关键的有限的昂贵的资源,这在多用户网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标,数据库连接池正是针对这个问题提出的. 数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连

xiaozhuanhao的专栏 1373

新手必看|HDevelop核心算子快速上手,为C#移植打基础

在上一篇文章中,我们完成了C#+HALCON的开发环境搭建。但在实际工业开发中,绝不会直接在C#中编写视觉算法HDevelop可视化调试算法 → 验证效果 → 导出C#代码 → 集成到上位机。HDevelop是HALCON专属的算法调试工具,支持实时预览图像、参数动态调节、零编译运行,是新手入门和工业算法调试的核心工具。本文聚焦工业场景高频使用的核心算子,从基础操作到实战案例,手把手教你使用HDevelop;同时重点讲解算法导出C#的规范,让你调试完成的算法,能无缝移植到WinForm上位机中。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 785

RK3588S开发板实战:手把手教你调试IMX415摄像头(附常见问题排查)

本文提供了基于RK3588S开发板调试IMX415摄像头的完整实战指南。从硬件连接到软件配置,详细解析了设备树(DTS)设置、驱动加载验证及V4L2工具链使用,并附带了常见问题排查方法,帮助开发者快速解决摄像头调试中的典型问题,实现图像采集与性能调优。

assembly8low的博客 598

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

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

zouzxxi的博客 4659

脑电时频分析I:谱分析

1、EEG频带划分 自发的EEG活动在活体大脑中持续存在,通常通过频率进行分类(也叫神经振荡活动) 特定频段的脑活动,即节律性的活动,具有特定的头皮分布和生物学意义 最后还有一个γ波,主要是指30hz~100hz的一个波段,通常这个波段也包含了噪声唁电的成分,比较难提取处理,比较少用到这个波段 这个波段主要是有可能躯体感觉皮层,进行一个多通道的感觉输入的i信号处理,比如我们同时处理视觉和听觉信号的处理,而且γ波与我们记忆的形成有关 除此之外,还有一个特殊的波段,8~12hz的Mu波段主要是特指我们

Kobe123brant的博客 1万+

Hibernate 连接池配置配置

1、Hibernate内置连接池 hibernate.cfg.xml文件内容: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "...

山不转的博客 3688

Unity URP炫彩干涉效果:从薄膜干涉原理到Shader Graph实现

薄膜干涉是一种常见的光学现象,指光在透明薄膜上下表面反射后产生干涉,形成彩虹色条纹。其原理基于光程差导致的相长与相消干涉,不同波长的光被选择性增强或削弱。在计算机图形学中,这一物理现象被抽象为高效的数学模型,通过Shader编程实现动态色彩变化,为游戏和实时渲染带来独特的视觉表现力。技术实现上,常采用正弦函数结合噪声纹理来模拟色彩循环,利用法线与视角点积作为基础变量,加入噪声扰动模拟厚度不均,实现随视角变化的虹彩效果。在Unity URP渲染管线中,可通过Shader Graph可视化工具或手写HLSL代码

weixin_34026997的博客 296

Hyper-V创建Ubuntu虚拟机设置固定IP

本文记录使用hyper-v创建ubuntu虚拟机,为虚拟设置固定IP且通过物理机可访问。

2623

C3P0连接池配置

C3P0是一个开源的JDBC连接池。 在Spring中,C3P0的一些配置,介绍如下(只列了一部分,不是全部)

caihaijiang的专栏 10万+

人工智能算法面试大总结-总目录

涉及秋招、春招、社招

啥都生的博客 2万+

mongodb 连接池配置

mongodb 连接池配置 spring.data.mongodb.address=127.0.0.1:27017 # 为集群设置所需的副本集名称 # spring.data.mongodb.replica-set=rs0 spring.data.mongodb.database=test spring.data.mongodb.username spring.data.mongodb.passw...

Men-DD 7907

视觉Transformer实战 | Data-efficient image Transformer(DeiT)详解与实现

在计算机视觉领域,Vision Transformer (ViT) 已经证明了纯 Transformer 架构在图像分类任务上的强大能力。然而,ViT 通常需要在大规模数据集上预训练才能达到最佳性能,DeiT (Data-efficient image Transformer) 通过引入一系列训练策略和优化,使得 Transformer 模型能够在相对较小的数据集上取得优异表现。本节将详细介绍 DeiT 的技术原理,并使用 PyTorch 从零开始实现 DeiT 模型。

盼小辉丶的博客 1341

ARM功耗管理之功耗状态及功耗模式

思考:功耗状态?功耗模式?Core&Cluster&Device&SoC如何映射?

AI-安全-功耗 784

SpringBoot 配置 Redis 连接池

SpringBoot2.0默认采用Lettuce客户端来连接Redis服务默认是不使用连接池的,只有配置redis.lettuce.pool下的属性的时候才可以使用到redis连接池版本说明2.5.4redis6.2.52.8.1采用Lettuce使用连接池,要依赖commons-pool2。...

web18334137065的博客 5815

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

oracle查连接池,Oracle 连接池配置

介绍一下Oracle开发方便的知识,数据库连接池,目前Oracle只支持一个连接池,名为SYS_DEFAULT_CONNECTION_POOL,管理连接池信息是通过一个包DBMS_CONNECTION_POOL来管理的。首先我们先看看包的相关说明:SQL> desc dbms_connection_poolPROCEDURE ALTER_PARAM参数名称...

weixin_36284062的博客 1867

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jre9下载 jdk9

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

连接池及其配置

连接池

m0_71212413的博客 3582

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Hibernate连接池配置

Hibernate 支持第三方的连接池,官方推荐的连接池是 C3P0,Proxool, 以及 DBCP 。在配置连接池时需要注意的有三点: 一、 Apche 的 DBCP 在 Hibernate2 中受支持,但在 Hibernate3 中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在 Hibernate3 中使用 DBCP ,建议采用 JNDI 方式。 二、默认情况

yiihsia的学习阵地 689

c3p0连接池配置模板,SSM中使用c3p0连接池配置属性

文章目录SSM使用c3p0连接池配置c3p0.properties属性文件Spring核心配置文件中配置applicationContext.xml2. c3p0-config.xml SSM使用c3p0连接池 配置c3p0.properties属性文件 #c3p0连接池属性文件 # 四大基本信息 c3p0.driverClass=com.mysql.jdbc.Driver c3p0.jdbcUrl=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&am

Java小皮孩 3080

MyBatis连接池配置详解

数据库连接池是一种数据库连接管理技术,它维护一个由数据库连接组成的连接池,应用程序从连接池中获取连接,使用完毕后,将连接返回给连接池,而不是直接关闭连接。这种方式可以减少数据库连接的创建和销毁时间,提高数据库访问效率。连接池是MyBatis中一个重要的组件,合理配置和使用连接池可以显著提高数据库访问效率。在实际应用中,应根据具体场景和需求选择合适的连接池,并对其进行优化配置,以确保系统稳定、高效地运行。连接池类型配置参数HikariCPC3P0DBCPProxool。

我是Java程序员廖志伟,感谢朋友们的支持!不定期贡献一篇高品质、过万文字、图文并茂且附有视频解说、满载代码示例注释的良心之作,坚决杜绝粗制乱造。 997

hibernate连接池配置

Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP。在配置连接池时需要注意的有三点: 一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。 二、默认情况下(即没有配置连接池的情况下)

zyg168的专栏 404

Druid连接池配置

文章目录1. 使用连接池的优势2. Druid连接池配置及说明引入资源application.yml中配置 返回目录 1. 使用连接池的优势 资源复用。减少创建、销毁连接时巨大的性能消耗 提高响应速度。这个很好理解,在需要进行连接时直接从连接池中取连接肯定要比创建连接速度要快。 减少连接泄露。比如MySQL数据库默认8小时自动断开连接,如果程序还在连接中会自动断开,而是用连接池通过判断连接是否有效可以自动规避这种情况的出现。 2. Druid连接池配置及说明 引入资源 <dependency&g

七夜之家 932

MyBatis连接池配置与优化

在当今的软件开发领域,数据库操作是构建应用程序不可或缺的一部分。特别是在使用MyBatis框架进行持久层开发时,合理配置连接池显得尤为重要。想象一下,一个大型企业级应用,其业务逻辑复杂,数据量庞大,若每次数据库操作都直接创建和销毁数据库连接,不仅会消耗大量资源,而且可能导致系统性能严重下降。因此,引入连接池技术成为优化数据库访问效率的关键。MyBatis连接池的作用在于复用数据库连接,减少连接创建和销毁的开销,提高应用程序的响应速度和稳定性。

我是Java程序员廖志伟,感谢朋友们的支持! 1107
上一篇: Hibernate中的迭代输出
下一篇: Hibernate获取数据方式与缓存使用
ljleiwf
博客等级 码龄20年 13粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值