zoukankan      html  css  js  c++  java
  • proxool配置多数据库多连接池

    1、配置环境

    http://proxool.sourceforge.net/下载proxool,释放proxool.jar到WEB-INF/lib

    2、Hibernate:

      ①、在hibernate.cfg.xml中添加:
           <property name="hibernate.connection.provider_class">
            org.hibernate.connection.ProxoolConnectionProvider
           </property>
           <property name="hibernate.proxool.pool_alias">Oracle</property>
           <property name="hibernate.proxool.xml">Proxool.xml</property>

           <!--是否将运行期生成的SQL输出到日志以供调试-->
           <property name="show_sql">false</property>
           <property name="dialect">
            org.hibernate.dialect.Oracle9Dialect
           </property>

      ②、在与hibernate.cfg.xml同级目录(src根目录下)添加proxool.xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- the proxool configuration can be embedded within your own application's.
    Anything outside the "proxool" tag is ignored. -->
    <something-else-entirely>
    <proxool>
           <alias>Oracle</alias>
           <!--proxool只能管理由自己产生的连接-->
           <driver-url>jdbc:oracle:thin:@192.168.0.2:1521:test</driver-url>
           <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
           <driver-properties>
            <property name="user" value="test" />
            <property name="password" value="test" />
           </driver-properties>

           <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->
           <maximum-connection-count>1000</maximum-connection-count>
           <!-- 最小连接数-->
           <minimum-connection-count>10</minimum-connection-count>

           <house-keeping-test-sql>
            select sysdate from YOUR_TABLE_NAME
           </house-keeping-test-sql>
           <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->
           <house-keeping-sleep-time>90000</house-keeping-sleep-time>
           <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
           <maximum-new-connections>20</maximum-new-connections>
           <!-- 最少保持的空闲连接数-->
           <prototype-count>5</prototype-count>

    </proxool>

    <proxool>
           <alias>MySQL</alias>
           <!--proxool只能管理由自己产生的连接-->
           <driver-url>jdbc:mysql://localhost:3306/test_bbs</driver-url>
           <driver-class>com.mysql.jdbc.Driver</driver-class>
           <driver-properties>
            <property name="user" value="root" />
            <property name="password" value="test" />
           </driver-properties>

           <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的
       
            等待请求数由maximum-new-connections决定-->
           <maximum-connection-count>1000</maximum-connection-count>
           <!-- 最小连接数-->
           <minimum-connection-count>10</minimum-connection-count>

           <house-keeping-test-sql>
            select sysdate from YOUR_TABLE_NAME
           </house-keeping-test-sql>
           <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回
       
            收,超时的销毁-->
           <house-keeping-sleep-time>90000</house-keeping-sleep-time>
           <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的
       
            用户连接就不会被接受-->
           <maximum-new-connections>20</maximum-new-connections>
           <!-- 最少保持的空闲连接数-->
           <prototype-count>5</prototype-count>

    </proxool>
    </something-else-entirely>

       ③、配置web.xml
    在web.xml中增加: (这个相当于程序中使用JAXPConfigurator.configure("proxool.xml", false)。在Hibernate中不需要这一步)
    <!-- 配置初始化servlet,在web容器加载的时候自动加载配置文件,如果不是web程序,这个部分就需要通过开发接口来初始化了 -->
    <servlet>
    <servlet-name>proxoolInitialServlet</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
    <init-param>
    <param-name>xmlFile</param-name>
    <param-value>WEB-INF/Proxool.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>

                    ④<!--配置监控servlet,其实如果不想监控的话,可以不配-->
    <servlet>
    <servlet-name>Admin</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>Admin</servlet-name>
    <url-pattern>/admin</url-pattern>
    </servlet-mapping>

    4、在程序中调用

    ①、调用mysql
    Connection conn = DriverManager.getConnection("proxool.MySQL");

  • 相关阅读:
    Firemonkey 控件设定字型属性及颜色
    ListView 使用 LiveBindings 显示超过 200 条记录
    Firemonkey ListView 获取项目右方「>」(Accessory) 事件
    XE7 Update 1 选 iOS 8.1 SDK 发布 iPhone 3GS 实机测试
    Firemonkey Bitmap 设定像素颜色 Pixel
    Firemonkey 移动平台 Form 显示使用 ShowModal 范例
    XE7 提交 App(iOS 8)提示「does not contain the correct beta entitlement」问题修复
    XE7 Android 中使用 MessageDlg 范例
    导出 XE6 预设 Android Style (*.style) 档案
    修正 Memo 設定為 ReadOnly 後, 無法有複製的功能
  • 原文地址:https://www.cnblogs.com/interdrp/p/1544103.html
Copyright © 2011-2022 走看看