Proxool连接池使用方法(sql2000)

来源:互联网 发布:域名的价格是多少 编辑:程序博客网 时间:2024/06/05 18:59

Proxool连接池是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。开源项目地址是: http://proxool.sourceforge.net/ 配置连接池比较的简单:  

1、首先确保普通的连接方式能够成功读取数据库,不成功的主要解决方案如下:

   1):sql2000未升级为sp3或者是sp4,其次就是JDBC的驱动程序(Microsoft SQL Server 2000 Driver for JDBC),可以执行setup.exe或者是单独下载 msbase.jar, mssqlserver.jar, msutil.jar,将其放在tomcat的common/lib下。或者是单独的项目的lib下面。注意设置环境变量(class path)

  2):如果以上配置都确保搞定之后,还是出现问题的话 就应该检查sql的tcp/ip 端口的可用性了,具体方法在此不写了,默认端口是1433,除非认为更改。可以在dos中执行命令telnet 127.0.0.1 1433 如果出现闪烁的鼠标的话就说明端口已经打开且运行正常。

接下来就是Proxool连接池得步骤:

1、将下载的包解开,从包中的lib目录下将proxool-xxx.jar(xxx随着不同的版本号变化)加入你的工程中。

2、配置数据源:

  在web-info下建立文件:proxool.xml,文件内容如下:

   <?xml version="1.0" encoding="UTF-8"?> 

       <something-else-entirely>        

               <proxool>                

                    <alias>Develop</alias>           

 <driver-url>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test</driver-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>

                          <driver-properties>                                    

                                     <property name="user" value="sa"/>                                   

                                      <property name="password" value=""/>                                   

                                      <property name="useUnicode" value="true"/>                                   

                                      <property name="characterEncoding" value="GBK"/>                 

                           </driver-properties>               

                           <!--自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->

                          <house-keeping-sleep-time>90000</house-keeping-sleep-time>     

                           <!--最少保持的空闲连接数-->      

                           <prototype-count>5</prototype-count>      

                          <!--允许最大连接数,超过了这个连接,再有请求时,就排在队列中-->      

                          <maximum-connection-count>1000</maximum-connection-count>      

                          <!--最小连接数-->      

                        <minimum-connection-count>10</minimum-connection-count>      

                        <!--最大的等待请求数,即因没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的 用户连接就不会被接受-->      

                        <proxool.simultaneous-build-throttle>200</proxool.simultaneous-build-throttle>          

                        <!--Test SQL(SELECT getDate()) -->          

                         <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>     

                   </proxool> 

             </something-else-entirely>

 也可以设置为此:

<driver-url>jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=test;SelectMethod=Cursor</driver-url>
<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>

 

3、配置web.xml 在web.xml中增加: 

<! -- 配置初始化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>dbpoolAdmin</servlet-name>    

          <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>  

</servlet>   

<servlet-mapping>    

            <servlet-name>dbpoolAdmin</servlet-name>    

            <url-pattern>/dbpool</url-pattern>  

</servlet-mapping>

4、如果你在main函数中调试的话会出现“Attempt to refer to a unregistered pool by its alias Develop这个问题,这是因为连接池的应用本来就是要通过服务器调用的,如果你在java文件中调用,就没有涉及到服务器,这样就会报错了!新建一个jsp页面测试即可;

如果你在java文件中用下面这种方式加载连接池是可用的: 

Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");

Connection conn  
= DriverManager.getConnection("proxool.别名:driver:url","用户名","密码");//别名可以随便取,但一定要写

       但是这种方式会每次运行的时候加载连接池,用完就会释放。

在java中的代码:

private Connection conn = null;

conn = DriverManager.getConnection("proxool.Develop");

其它对数据库的具体操作了。

5:其他数据库可以参照:http://www.eclipser.cn/diary/2825

原创粉丝点击