zoukankan      html  css  js  c++  java
  • Tomcat jdbc pool配置

      Tomcat jdbc pool是apache在tomcat7版本中启用的新连接池,用它来解决以往DBCP无法解决的一些问题。

    Tomcat jdbc pool的优点:

      (1)    tomcat jdbc pool 近乎兼容 dbcp ,性能更高

      (2)    异步方式获取连接

      (3)    tomcat jdbc pool 是 tomcat 的一个模块,基于 tomcat JULI,使用 Tomcat 的日志框架

      (4)    使用 javax.sql.PooledConnection 接口获取连接

      (5)    支持高并发应用环境

      (6)    超简单,核心文件只有8个,比 c3p0 还少

      (7)    更好的空闲连接处理机制

      (8)    支持 JMX

      (9)    支持 XA Connection

      Tomcat jdbc pool的使用仅需2个jar包,分别为tomcat-jdbc.jar和tomcat-juli.jar,这两个jar包都可以在tomcat7中找到,tomcat-jdbc.jar在tomcat的lib目录下,tomcat-juli.jar在bin目录下。

    下面是我自己测试用的连接类:

    package com.grtg.util;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Properties;
    
    import org.apache.tomcat.jdbc.pool.DataSource;
    import org.apache.tomcat.jdbc.pool.PoolProperties;
    
    
    /**
     * tomcat jdbc pool数据库连接池管理类
     * 
     */
    public class DBUtil {
        static DataSource dataSource = new DataSource();
    
        static {
            PoolProperties poolProperties = new PoolProperties();
            Properties dbProperties = new Properties();
            try {
                dbProperties.load(DBUtil.class.getClassLoader().getResourceAsStream(配置文件地址));
                //设置URL
                poolProperties.setUrl(dbProperties.getProperty("url"));
                //设置驱动名
                poolProperties.setDriverClassName(dbProperties.getProperty("driver"));
                //设置数据库用户名
                poolProperties.setUsername(dbProperties.getProperty("username"));
                //设置数据库密码
                poolProperties.setPassword(dbProperties.getProperty("password"));
                //设置初始化连接数
                poolProperties.setInitialSize(Integer.valueOf(dbProperties.getProperty("initialSize")));
                
                dataSource.setPoolProperties(poolProperties);
            } catch (Exception e) {
                throw new RuntimeException("初始化数据库连接池失败");
            }
        }
    
        private DBUtil() {
            super();
        }
        
        /**
         * 获取数据库连接
         * @return 数据库连接
         */
        public static final Connection getConnection() {
            Connection conn = null;
            try {
                conn = dataSource.getConnection();
            } catch (SQLException e) {
                throw new RuntimeException("获取数据库连接失败");
            }
            return conn;
        }
    
        /**
        * 关闭连接
        * 
        * @param conn
        *            需要关闭的连接
        */
        public static void closeConnection(Connection conn) {
            try {
                if (conn != null && !conn.isClosed()) {
                    conn.close();
                }
            } catch (SQLException e) {
                throw new RuntimeException("关闭数据库连接失败");
            }
        }
    }

    下面是配置文件信息:

    ##############################MySQL数据库连接驱动##############################
    #数据库连接URL
    url=jdbc:mysql://localhost:3306/grtg?useUnicode=true&characterEncoding=utf8
    #数据库连接驱动
    driver=com.mysql.jdbc.Driver
    #数据库连接用户名
    username=root
    #数据库连接密码
    password=root
    ##############################MySQL数据库连接驱动END###########################
    
    ##############################连接池配置######################################
    #初始化连接:连接池启动时创建的初始化连接数量
    initialSize=10
    #连接池的最大数据库连接数。设为0表示无限制
    maxActive=50
    #最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被释放。设为0表示无限制
    maxIdle=10
    #最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接
    minIdle=5
    #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制
    maxWait=1000
    #超过removeAbandonedTimeout时间后,是否进 行没用连接(废弃)的回收(默认为false,调整为true) 
    removeAbandoned=true
    #超过时间限制,回收没有用(废弃)的连接(默认为 300秒,调整为180)
    removeAbandonedTimeout=180
    ##############################连接池配置######################################

    以上便是配置信息,诸位如果有好的见解可以提出,大家共同学习。

  • 相关阅读:
    14.4.9 Configuring Spin Lock Polling 配置Spin lock 轮询:
    14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
  • 原文地址:https://www.cnblogs.com/aotian/p/3618288.html
Copyright © 2011-2022 走看看