精华内容
下载资源
问答
  • 数据库连接池图解原理,用流程图讲解非常直观详细,很好理解。
  • Weblogic数据库连接池配置图解

    千次阅读 2018-12-04 10:35:06
    1、建立连接池 2、填写连接属性 3、测试连接配置 4、创建、部署 ...5、在connections面板上进行高级测试属性的配置 ...9、选择数据库源放置与那个连接池 10、选择目标服务器 11、配置成...

    1、建立连接池
    在这里插入图片描述
    2、填写连接属性
    在这里插入图片描述
    3、测试连接配置
    在这里插入图片描述
    4、创建、部署
    在这里插入图片描述
    5、在connections面板上进行高级测试属性的配置
    在这里插入图片描述
    在这里插入图片描述
    选中三个test选项
    在这里插入图片描述
    6、到testing处进行测试
    在这里插入图片描述
    表示在服务器myserver上部署成功
    在这里插入图片描述
    7、到datasources处配置数据源(jndi设置)
    在这里插入图片描述
    8、设置jndi名(重要)
    在这里插入图片描述
    9、选择数据库源放置与那个连接池
    在这里插入图片描述
    10、选择目标服务器
    在这里插入图片描述
    11、配置成功
    在这里插入图片描述
    12、编写简单的web程序测试数据源
    (略)

    展开全文
  • 据库连接池的图解原理 ...最近我作了数据库JSP的频繁连接,在此给出数据库连接池的必要性,对于JSP来说一个很好的J2EE服务器是很必要的,JBOOS,WebLogic都是很好的解决方案。 一般情况下,...

    转载自_百度空间 http://hi.baidu.com/576699909/item/04c80e9a5eabb419934f410a

    据库连接池的图解原理

          最近我作了数据库JSP的频繁连接,在此给出数据库连接池的必要性,对于JSP来说一个很好的J2EE服务器是很必要的,JBOOS,WebLogic都是很好的解决方案。

     

     

          一般情况下,在使用开发基于数据库的WEB程序时,传统的模式基本是按以下步骤:

            1在主程序(如ServletBeans)中建立数据库连接。

            2进行SQL操作,取出数据。

            3断开数据库连接。

            使用这种模式开发,存在很多问题。首先,我们要为每一次WEB请求(例如察看某一篇文章的内容)建立一次数据库连接,对于一次或几次操作来讲,或许你觉察不到系统的开销,但是,对于WEB程序来讲,即使在某一较短的时间段内,其操作请求数也远远不是一两次,而是数十上百次(想想全世界的网友都有可能在您的网页上查找资料),在这种情况下,系统开销是相当大的。事实上,在一个基于数据库的WEB系统中,建立数据库连接的操作将是系统中代价最大的操作之一。很多时候,可能您的网站速度瓶颈就在于此。

            其次,使用传统的模式,你必须去管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄露,最终我们将不得不重启数据库。

            针对以上问题,我们首先想到可以采用一个全局的Connection对象,创建后就不关闭,以后程序一直使用它,这样就不存在每次创建、关闭连接的问题了。但是,同一个连接使用次数过多,将会导致连接的不稳定,进而会导致WEB   SERVER的频频重启。故而,这种方法也不可取。实际上,我们可以使用连接池技术来解决上述问题。首先,介绍一下连接池技术的基本原理。顾名思义,连接池最基本的思想就是预先建立一些连接放置于内存对象中以备使用:

     

          如图所示,当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。同时,我们还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等等。通过使用连接池,将大大提高程序效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。下面我们以一个名为ConnectionPool的连接池为例来看看连接池的实现。先看看ConnectionPool的基本属性:

            m_ConnectionPoolSize:连接池中连接数量下限

            m_ConnectionPoolMax:连接池中连接数量上限

            m_ConnectionUseCount:一个连接的最大使用次数

            m_ConnectionTimeout:一个连接的最长空闲时间

            m_MaxConnections = -1:同一时间的最大连接数

            m_timer:定时器

            这些属性定义了连接池与其中的每个连接的有效状态值。连接池的自我管理,实际上就是通过定时的对每个连接的状态、连接的数量进行判断而进行相应操作。其管理流程如下:

     

     

     

          通过上图,我们可以定义出ConnectionPool要完成管理所需要的基本接口:

          public class ConnectionPool implements TimerListener{

            public boolean initialize() //连接池初始化

            public void destroy() //连接池的销毁

            public synchronized java.sql.Connection getConnection() //取一个连接

            public synchronized void close() //关闭一个连接

            private synchronized void removeFromPool() //把一个连接从连接池中删除

            private synchronized void fillPool() //维护连接池大小

            public synchronized void TimerEvent() //定时器事件处理函数

          } 

            通过这几个接口,已经可以完成连接池的基本管理。在TimeEvent()函数中完成连接池的状态检验工作,fillPool()时连接池至少保持最小连接数。因为我们要保存每一个连接的状态,所以还需要一个数据库连接对象:

     

          class ConnectionObject{

            public java.sql.Connection con; public boolean inUse; //是否被使用标志

            public long lastAccess; //最近一次开始使用时间

            public int useCount; //被使用次数

          }

          加入了ConnectionObject对象后,在ConnectionPool中操作的应该只是ConnectionObject,而其他进程需要的只是

          ConnectionObjectcon属性,因此我们再加入一个类,作为其他进程获得与返回连接的接口:CLASS Conn{

            GetConnection(); //从连接池中取出一个有效连接

            CloseConnection(); //返回连接,此时并没有关闭连接,只是放回了连接池

            DestroyPool(); //销毁连接池

          }

            最后我们的整个系统总的架构如下:

     

          通过上面的介绍,我们可以看出,连接池技术的关键就是其自身的管理机制,以上的管理流程只是本人一点见解,关键是想向大家介绍一种思路,在此基础上,您可以进一步完善连接池技术为您所用。

    转载于:https://www.cnblogs.com/xiaolei1314/p/3675617.html

    展开全文
  • 数据库连接池的原理

    2019-07-22 15:53:03
    数据库连接池原理: 图解: 连接池原理:

    数据库连接池原理:

    图解:
    在这里插入图片描述

    连接池原理:

    在这里插入图片描述

    展开全文
  • 本文利用Tomcat5配置Mysql JDBC数据库连接池,并给出详细的测试用例。 @author:ZJ07-11-23 Blog:[url]http://zhangjunhd.blog.51cto.com/[/url] 1.配置说明 Tomcat5.0 Eclipse3.3+MyEclipse6.0 Mysql5 mysql-...
    本文利用Tomcat5配置Mysql JDBC数据库连接池,并给出详细的测试用例。
    @author:ZJ 07-11-23
    1配置说明
    Tomcat5.0 
    Eclipse3.3+MyEclipse6.0
    Mysql5
    mysql-connector-java-3.1.12
    2.新建web工程
    [1]New Project-Web Project-取名为ConnectorPool

    [2]mysql-connector-java-3.1.12加到%TOMCAT_HOME%/common/lib下。
     
    [3]部署测试该工程。
    在地址栏输入[url]http://127.0.0.1:8080/ConnectorPool/[/url],将得到默认的index.jsp。说明部署成功。
    3.配置Tomcat Admin
    启动Tomcat,访问[url]http://127.0.0.1:8080/admin/[/url],输入用户名和密码,即可进入管理界面。用户名和密码可在%Tomcat _HOME%/conf/ tomcat-users.xml中找到。
    左边的菜单栏时有Tomcat Server,Resources,User Definition。注意,不要在Resource中配置数据源,这是配置全局的数据源。
    进入Tomcat Server->Service(Catalina)->Host(loalhost),就能找到刚才部署的工程->Context(/ConnecterPool)

    再打开该子树,打开Resources->Data Sources这里就是针对某个具体ContextDataSource了。

    Create New Data Source
    JNDI Name:jdbc/testpool //设置连接池的JNDI;
    Data Source URL:jdbc:mysql://localhost:3306/conpool  //数据库连接字串forpool为数据库名;
    JDBC Driver Class: com.mysql.jdbc.Driver  //数据库连接类 ;
    User Nameroot //数据库连接时的用户名;
    Password**** //数据库连接时的密码;
    ⑥以下默认配置。

      点击Save,配置完成(一般不需要重启tomcat)
    4.配置项目中/WEB-INF/web.xml
    <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/testpool</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
    5.配置完成,在java文件中使用数据库连接池
    import javax.naming.InitialContext;
    import javax.sql.DataSource;
    InitialContext ctx=new InitialContext();
    DataSource dataSource=(DataSource)ctx.lookup("java:comp/env/jdbc/testpool");
    Connection con=dataSource.getConnection();
    通过这段代码。即可完成数据库连接。下面给出一个具体的测试例。
    6.测试
    6.1 测试用的数据库
    [1]数据库名conpool(对Data Source URL:jdbc:mysql://localhost:3306/conpool 
    [2]表名test
    [3]字段名 id [varchar(12) notnull]
    [4]表中数据
    id
    001
    002
    003
     
    6.2测试用的代码test.jsp
    <%@ page language="java" contentType="text/html; charset=GB18030"
        pageEncoding="GB18030"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="javax.sql.*"%>
    <%@ page import="javax.naming.*"%>
    <%@ page session="false"%>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
           <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
           <title>test for DB connection</title>
           <%
               out.print("beginning testing...");
               out.print("<br>");
               DataSource ds = null;
               try {
                  InitialContext ctx = new InitialContext();
                  ds = (DataSource) ctx.lookup("java:comp/env/jdbc/testpool");
                  Connection conn = ds.getConnection();
                  Statement stmt = conn.createStatement();
                  // test是数据库已有的表,
                  //这里的数据库是前文提及的Data Source URL配置里包含的数据库。
                  String strSql = " select * from test";
                  ResultSet rs = stmt.executeQuery(strSql);
                  while (rs.next()) {
                      out.print(rs.getString(1));
                  }
                  out.print("<br>");
                  out.print("end testing.");
               catch (Exception ex) {
                  out.print("error:" + ex.getMessage());
                  ex.printStackTrace();
               }
           %>
        </head>
        <body>
        </body>
    </html>
     
    6.3测试结果

    7.查询配置文件
    编译后,%TOMCAT_HOME%/conf/Catalina/localhost/目录下有个ConnectorPool.xml,其内容为:
     <?xml version='1.0' encoding='utf-8'?>
    <Context docBase="ConnectorPool" path="/ConnectorPool"
     workDir="work\Catalina\localhost\ConnectorPool">
      <Resource auth="Container" description="DB Connection" name="jdbc/testpool" type="javax.sql.DataSource"/>
      <ResourceParams name="jdbc/testpool">
        <parameter>
          <name>maxWait</name>
          <value>5000</value>
        </parameter>
        <parameter>
          <name>maxActive</name>
          <value>4</value>
        </parameter>
        <parameter>
          <name>password</name>
          <value>root</value>
        </parameter>
        <parameter>
          <name>url</name>
          <value>jdbc:mysql://localhost:3306/conpool</value>
        </parameter>
        <parameter>
          <name>driverClassName</name>
          <value>com.mysql.jdbc.Driver</value>
        </parameter>
        <parameter>
          <name>maxIdle</name>
          <value>2</value>
        </parameter>
        <parameter>
          <name>username</name>
          <value>root</value>
        </parameter>
      </ResourceParams>
    </Context>
    参数说明:
    driveClassNameJDBC驱动类的完整的名称;
    maxActive:同时能够从连接池中被分配的可用实例的最大数;
    maxIdle:可以同时闲置在连接池中的连接的最大数;
    maxWait:最大超时时间,以毫秒计;
    password:用户密码;
    url:到JDBCURL连接;
    user:用户名称;
    validationQuery:用来查询池中空闲的连接。


    本文转自zhangjunhd51CTO博客,原文链接:http://blog.51cto.com/zhangjunhd/51938,如需转载请自行联系原作者
    展开全文
  • 概念数据库连接是一种关键的有限的昂贵的资源 物理连接统一由连接池管理,减少数据库连接释放的压力 :) 每次请求每次新建一个逻辑连接,实际是复用连接池的物理...图解参考由数据库连接池引出的三种设计模式
  • 数据库连接池(DBCP和C3P0) 一.数据库连接池的概念  数据库连接池可以理解为是存放多个数据库连接的集合。  作用;解决建立数据库连接耗费很多资源和时间问题,提高性能 ... 连接池图解:...
  • 项目中用了GlassFish有一段日子了,GlassFish的Admin-GUI 做的还是不错的,比较直观,废话少说进入正题,配置GlassFish的连接池点了10几下鼠标就可搞定了,详见下图:注意:要做一项准备工作,copy你的JDBC 驱动到 ...
  •  2、使用数据库连接池优化程序性能(图解)    3、可扩展增强某个类方法的功能的三种方式    4、自定义数据库连接池——基于装饰设计模式    5、数据库连接池核心代码——基于动态代理技术    6、...
  • 2、使用数据库连接池优化程序性能(图解) 3、可扩展增强某个类方法的功能的三种方式 4、自定义数据库连接池——基于装饰设计模式 5、数据库连接池核心代码——基于动态代理技术 6、开源数据库连接池介绍 7、...
  • 2、使用数据库连接池优化程序性能(图解)                 3、可扩展增强某个类方法的功能的三种方式   (1) 在实际开发中,发现对象的方法满足不了开发需求时,有三种方式对其进行增强:...
  • 1.使用数据库连接池优化程序性能 l 应用程序直接获取链接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就...
  • jdbc连接池原理图讲解

    2019-02-21 08:52:09
     最近我作了数据库JSP的频繁连接,在此给出数据库连接池的必要性,对于JSP来说一个很好的J2EE服务器是很必要的,JBOOS,WebLogic都是很好的解决方案。      一般情况下,在使用开发基于数据库的WEB程序时,传统...
  • 我们都知道通过jdbc 的链接 ...数据库连接池技术带来的优势: 1. 资源重用 2. 更快的系统响应速度 3. 新的资源分配手段 4. 统一的连接管理,避免数据库连接泄漏 原理图解 使用过程: jdbc.properties ...
  • 1、数据源性能优化1、1连接池参数配置登录weblogic控制台,占击“connection pool”按钮进入数据库连接池配置页面。数据源性源优化参数说明:1)初始容量(要在创建连接缓冲池时创建的物理连接数):102)最大容量(此连接...
  • 01Mysql 基础 02SQL语言 03JDBC 04DBUtils 1.Mysql的安装和使用 1.SQL语句的三种类型 1.JDBC概述 1.使用QueryRunner 2.图解Mysql程序结构 2.DML、DDL、DCL ...3.数据库连接池C3P0 、DBCP、Druid 3.批量...
  • Weblogic性能优化(图解

    万次阅读 2015-06-01 09:58:50
    登录weblogic控制台,占击“connection pool”按钮进入数据库连接池配置页面。数据源性源优化参数说明: 1)初始容量(要在创建连接缓冲池时创建的物理连接数):10  2)最大容量(此连接缓冲池可容纳的最大物理连接数...
  • 2、使用数据库连接池优化程序性能(图解) 3、可扩展增强某个类方法的功能的三种方式 4、自定义数据库连接池——基于装饰设计模式 5、数据库连接池核心代码——基于动态代理技术 6、开源数据库连接池介绍 7、DBCP...
  • **一个典型的应用场景就是用来实现各种池了,比如String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。**享元模式主要为了解决大量类似对象占用大量内存的现象,因为...
  • Java中Runtime的源码就是使用单例模式实现的,初次之外还有Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的日志对象、数据库连接池、网站的...
  • 首先是要知道,把这个系统分成了十二个部分,分别是登录,注册,权限验证,注册审批,部门管理,优化freemarker,访问次数统计,简化登录,搜索员工,会议室管理,预定会议,使用连接池 然后是拿到网站上分享的原型,...
  • 当 页面加载完成后 发送ajax请求,加载所有省份复制代码图解思路搭建环境1、导入相关jar包(由于不是maven项目,所以jar包还得手动导入)2、创建数据库(建库建表操作)3、导入配置文件(数据库连接池和缓存客户端配置...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

数据库连接池图解