Chinaunix首页 | 论坛 | 博客
  • 博客访问: 785118
  • 博文数量: 738
  • 博客积分: 7000
  • 博客等级: 少将
  • 技术积分: 5000
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-12 09:00
文章分类

全部博文(738)

文章存档

2011年(1)

2008年(737)

我的朋友

分类:

2008-09-12 09:06:54

    最近做的一个项目中运用到了连接池技术,可能我们大家比较熟悉的开源连接池有dbcp,c3p0,proxool。对这三种连接池来说,从性能和出错率来说,proxool稍微比前两种好些。今天我主要简单的讲述一下,我在项目中成功的配置和源码。
        第一步:首先去一个proxool.jar文件了,我用的是proxool-0.8.3.jar,现在最新版本是proxool-0.9.3.jar.除了他们的查看监控台的页面有变化,其他的变化不是太大。
        第二步:就是写一个单独的proxool.xml文件放到WEB-INF文件夹下。我用的数据库是MySQL.
    peoxool.xml的配置文件如下:
   
   
   
    db
    jdbc:mysql://×××.×××.××.×××:3303/mydb
    com.mysql.jdbc.Driver
   
   
   
   

    90000
    20
    5
    1000
    10
   

   

     对以上配置简单的解释:
    1.  :为该连接池起一个别名,在其他文件中引用。引用是:(proxool.db);
    2. com.mysql.jdbc.Driver
    
    
    
   

    这些配置大家应该比较熟悉吧。配置数据库的驱动和连接。
    3.  :proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁。
    4.: 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受。
    5.:最少保持的空闲连接数。
    6.: 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定
    7.:最小连接数

    第三步:加载并初始化proxool.xml文件。因为它是连接数据库的,其他很多模块都用到数据,所以你必须首先加载它,在web.xml中进行如下配置:如果你以前加载applicationContext.xml用的是:
   
   
    org.springframework.web.context.ContextLoaderListener
   

   

    这时你必须换成如下配置:
   
    contextConfigLocation
   
    org.springframework.web.context.ContextLoaderServlet
   

    2
   

    要不然你就会遇见这样的错误:
    Problem
    org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its
    alias 'db'
      如果用过proxool与spring整合时,不少就遇到过这样的问题,其实这个问题很明显就是你的proxool.xml没有被先加载初始化,我们应该让它先加载,应该这样配置:
   
    ServletConfigurator
   
    org.logicalcobwebs.proxool.configuration.ServletConfigurator
   

   
    xmlFile
    WEB-INF/proxool.xml
   

    1
   

    把的值设为1,值越小级别就越高,就先被加载初始化。一定要先于applicationContext.xml的加载。

[1]  

【责编:Ken】

--------------------next---------------------

阅读(500) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~