引用 Proxool连接池的使用
官方网址:http://proxool.sourceforge.net/ 当前版本:proxool-0.9.0RC2
1、下载proxool 地址:http://proxool.sourceforge.net
2、解压缩proxool-0.9.0RC2.zip,拷贝lib/proxool-0.9.0RC2.jar到web-info/lib 拷贝jdbc驱动到web-info/lib
3、在web-info下建立文件:proxool.xml
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<!--连接池的别名-->
<alias>DBPool</alias>
<!--proxool只能管理由自己产生的连接-->
<driver-url>jdbc:oracle:thin:@127.0.0.1:1521:ora</driver-url>
<!--JDBC驱动程序-->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="sys"/>
<property name="password" value="sys"/>
</driver-properties>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
<maximum-new-connections>150</maximum-new-connections>
<!-- 最少保持的空闲连接数-->
<prototype-count>3</prototype-count>
<!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->
<maximum-connection-count>100</maximum-connection-count>
<!-- 最小连接数-->
<minimum-connection-count>3</minimum-connection-count>
</proxool>
</something-else-entirely>
4、在web.xml里新增如下:
<!--加载proxool配置信息-->
<servlet>
<servlet-name>proxoolServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/config/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- proxool提供的管理监控工具,可查看当前数据库连接情况。如果运行不成功,请删除本行 -->
<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>
5、在调用数据库连接代码:
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Connection conn = DriverManager.getConnection("proxool.Develop");
6、利用proxool监控工具查看数据库运行状态。地址:./admin
以上配置是采用的XML文件方式,也可以采用properties配置方式:
proxool.alias=Test
proxool.driver-class=oracle.jdbc.driver.OracleDriver
proxool.driver-url=jdbc:oracle:thin:@192.168.10.160:1521:orcl
proxool.user=test
proxool.password=testpass
proxool.maximum-connection-count=20
proxool.prototype-count=4
proxool.house-keeping-test-sql=select sysdate from DUAL
proxool.verbose=true
proxool.statistics=10s,1m,1d
proxool.statistics-log-level=ERROR
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>propertyFile</param-name>
<param-value>WEB-INF/config/Proxool.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
在调用数据库连接代码
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Connection conn = DriverManager.getConnection("proxool.Test");
还有一些配置属性:
maximum-connection-lifetime 最大连接生命周期 默认值:4小时
maximum-active-time: 最大活动时间 默认值:5分钟
maximum-connection-count 最大连接数 默认值:15个
minimum-connection-count 最小连接数 默认值:5个
在用admin调用的时候,可以查看这个WEB应用所有的连接数的状态,虽然这个插件可以把不活动的连接自动放到连接池里,但是如果连接数过多,而不及时KILL的话,对网站的连接是有很大的影响的,建议还是手工KILL。
在web-info下建立文件:proxool.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<!--连接池的别名-->
<alias>DBPool</alias>
<!--proxool只能管理由自己产生的连接-->
<driver-url>jdbc:oracle:thin:@127.0.0.1:1521:ora</driver-url>
<!--JDBC驱动程序-->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="sys"/>
<property name="password" value="sys"/>
</driver-properties>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
<maximum-new-connections>150</maximum-new-connections>
<!-- 最少保持的空闲连接数-->
<prototype-count>3</prototype-count>
<!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->
<maximum-connection-count>100</maximum-connection-count>
<!-- 最小连接数-->
<minimum-connection-count>3</minimum-connection-count>
</proxool>
</something-else-entirely>
4、在web.xml文件内加入以下内容:
<servlet>
<servlet-name>proxoolServletConfigurator</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>
<!-- proxool提供的管理监控工具,可查看当前数据库连接情况。如果运行不成功,请删除本行 -->
<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>
5、在调用数据库连接代码:
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Connection conn = DriverManager.getConnection("proxool.Develop");
6、利用proxool监控工具查看数据库运行状态。地址:./admin
在Spring框架中使用Proxool数据源BEAN
方法一、使用Proxool的数据源BEAN。在spring的BEAN配置文件中增加配置代码,如下:
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="driverUrl">
<value>jdbc:oracle:thin:@127.0.0.1:1521:ORA</value>
</property>
<property name="user">
<value>sys</value>
</property>
<property name="password">
<value>sys</value>
</property>
<property name="alias">
<value>DB</value>
</property>
<property name="prototypeCount">
<value>1</value>
</property>
<property name="maximumConnectionCount">
<value>10</value>
</property>
<property name="minimumConnectionCount">
<value>1</value>
</property>
<property name="trace">
<value>true</value>
</property>
<property name="verbose">
<value>true</value>
</property>
</bean>
以上参数与在proxool中配置的基本相同,这里不在做解释。
方法二、结合Spring的org.springframework.jdbc.datasource.DriverManagerDataSource类来使用,配置如下:
1、先在WEB-INF目录下建立proxool.xml文件。参考上面的proxool.xml及web.xml配置。
2、在Spring的bean配置文件中配置以下代码:
<bean id="dataSource1" class="org.springframework.jdbc.datasource.DriverManagerDataSource" singleton="true">
<property name="driverClassName" value="org.logicalcobwebs.proxool.ProxoolDriver"/>
<property name="url" value="proxool.DBPool"/><!--使用此种方式必须比SPRING框架先加载配置-->
</bean>
<!--对proxool进行事务支持-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource1" />
</property>
</bean>
分享到:
相关推荐
在这里,我们通过`dataSource`属性引用了上面配置的数据源,这样Hibernate就能使用Proxool连接池进行数据库操作。 5. 在`hibernateProperties`中,我们设置了`hibernate.dialect`为`MySQLDialect`,表示使用的是...
3. **Proxool连接池配置**: 对于Proxool,配置如下: ```xml ... <property name="hibernate.c3p0.proxy_factory_class">org.hibernate.connection.ProxoolProxyFactory <property name="proxool.hibernate....
- 获取数据库连接,通常通过 `DriverManager.getConnection()`,使用别名 `DBPool` 来引用配置好的 Proxool 连接池。 - 执行 SQL 查询或操作,如 `Statement` 或 `PreparedStatement`。 - 关闭数据库连接,以释放...
需要创建一个单独的XML文件来管理连接池,然后在Hibernate配置文件中引用它。首先确保引入`proxool-0.8.3.jar`,然后配置如下: ```xml <!-- 在Hibernate配置文件中 --> ...
1. **别名(alias)**: `ds` 是数据源的别名,用于在代码中引用该连接池。 2. **驱动URL(driver-url)**: 这里是MySQL的JDBC URL,包括服务器地址、端口、数据库名以及连接参数。例如,`jdbc:mysql://192.168.104.191:...
在`hibernate.cfg.xml`文件中,你需要配置使用proxool作为连接池,如下所示: ```xml ... <property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider ...
同时,我们需要导入Proxool连接池的相关库,包括`proxool-0.9.1.jar`,`proxool-cglib.jar`,以及对应的数据库驱动包(这里是`mysql-connector-java-5.0.8-bin.jar`)。 在项目中,我们需要创建一个名为`jdbc....
在与 Hibernate 集成时,可以通过 Hibernate 的配置文件(如 `hibernate.cfg.xml`)引用 C3P0 配置,以便使用 C3P0 作为连接池管理器。 在实际使用中,应根据应用程序的需求、数据库服务器的负载以及数据库系统的...
在这个文件中,引入了proxool连接池,并设置了相关属性。 4. **导入依赖**:导入proxool和数据库驱动包,例如MySQL的驱动包`mysql-connector-java-5.0.8-bin.jar`。在`applicationContext.xml`中配置proxool数据源...
接着,配置Proxool.xml文件,这是Spring与Hibernate整合中用于管理数据库连接池的配置。在这里,我们指定了数据库的URL、驱动类、用户名和密码,以及连接池的一些参数,如最小连接数、最大连接数、连接生命周期和...
对于数据库连接池,这里使用了Proxool,需要导入proxool-0.9.1.jar和proxool-cglib.jar。同时,由于使用MySQL数据库,还需要导入对应的驱动包,例如mysql-connector-java-5.0.8-bin.jar。 配置数据库连接信息通常是...
然后,我们来看`Proxool.xml`文件,这是配置数据库连接池Proxool的文件。配置包括数据库URL、驱动类、用户名、密码以及连接池的一些参数,例如最小和最大连接数、连接生命周期等。例如: ```xml <proxool> <alias>...
在`applicationContext.xml`中,定义了一个`ProxoolDataSource` bean,这是基于Proxool的数据库连接池。配置了数据库驱动、URL、用户名、密码等参数,以及连接池的属性如最大连接数、最小连接数和睡眠时间等。这段...