proxool连接池的配置方式有多种,其中主要有TOMCAT JNDI注册方式,自身JNDI注册方式,DataSource注册等
下面依次论述下:
一、TOMCAT JNDI注册方式
先把需要的包复制进 %tomcat_path%\lib
需要的包为:
proxool-0.9.1.jar
proxool-cglib.jar 2个Proxool包,没什么好说的
ojdbc14.jar Oracle-JDBC驱动包
commons-logging-1.0.4.jar logging包,不放进去可能会报错
上面的包放进%tomcat_path%\lib之后,就不需要在项目中引入了,否则会报错
包放入之后,就可以配置Jndi了...
打开%tomcat_path%\conf\context.xml
在里面有一个Context 的Tag
<Context>
........
</Context>
在里面插入以下代码
<Resource auth="Container"
delegateProperties="foo=bar"
factory="org.logicalcobwebs.proxool.ProxoolDataSource"
name="/jdbc/mydatasource"
user="user"
password="password"
proxool.alias="proxool_testdb"
proxool.driver-class="oracle.jdbc.driver.OracleDriver"
proxool.driver-url="jdbc:oracle:thin:@127.0.0.1:1521:pub"
proxool.maximum-connection-count="5"
proxool.maximum-active-time="10000"
proxool.house-keeping-sleep-time="180000"
proxool.house-keeping-test-sql="Select Sysdate From dual"
proxool.prototype-count="2"
type="javax.sql.DataSource" />
这样,Jndi就配置完成了......
然后在程序里面可以这么得到DataSource和Connection:
try {
Context ctx = new InitialContext();
DataSource dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/mydatasource");
Connection conn = dataSource.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
这样就完成了...
二、第一个方法是在容器,也就是Tomcat上做配置,但是,有时候会不适用,比如虚拟主机,它可能不允许你在机器上做配置,那样,就只能从自身的程序着手.
首先,写一个Proxool的配置文件.....放在 WEB-INF 目录下,下面是一个例子:
<?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>proxool_alias</alias>
<driver-url>jdbc:oracle:thin:@127.0.0.1:1521:sid</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="user" />
<property name="password" value="pwd" />
</driver-properties>
<maximum-connection-count>10</maximum-connection-count>
<minimum-connection-count>5</minimum-connection-count>
<maximum-connection-lifetime>30</maximum-connection-lifetime>
<maximum-active-time>3</maximum-active-time>
<simultaneous-build-throttle>5</simultaneous-build-throttle>
<house-keeping-sleep-time>30000</house-keeping-sleep-time>
<house-keeping-test-sql>Select Sysdate Form dual</house-keeping-test-sql>
<prototype-count>0</prototype-count>
</proxool>
</something-else-entirely>
然后,当然是先把这个文件先用上,看看可不可以用
在web.xml里面配置上
<servlet>
<servlet-name>ServletConfigurator</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-name>proxooladmin</servlet-name>
<servlet-class> org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>proxooladmin</servlet-name>
<url-pattern>/proxooladmin.servlet</url-pattern>
</servlet-mapping>
这样在应用启动之后,就能通过以下代码来访问到数据库
Connection conn = DriverManager.getConnection("proxool.proxool_alias");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("Select * From test");
/*以下是重点*/
但是我们需要的是注册一个JNDI,
有2种方法
1.配置文档里面直接注册,这样配置:
<?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>proxool_alias</alias>
<driver-url>jdbc:oracle:thin:@127.0.0.1:1521:pub</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="user" />
<property name="password" value="pwd" />
</driver-properties>
<jndi-name>jdbc-0</jndi-name>
<jndi-java.naming.factory.initial>org.apache.naming.java.javaURLContextFactory</jndi-java.naming.factory.initial>
<jndi-java.naming.factory.url.pkgs>org.apache.naming</jndi-java.naming.factory.url.pkgs>
<maximum-connection-count>10</maximum-connection-count>
<minimum-connection-count>5</minimum-connection-count>
<maximum-connection-lifetime>30</maximum-connection-lifetime>
<maximum-active-time>3</maximum-active-time>
<simultaneous-build-throttle>5</simultaneous-build-throttle>
<house-keeping-sleep-time>30000</house-keeping-sleep-time>
<house-keeping-test-sql>Select Sysdate Form dual</house-keeping-test-sql>
<prototype-count>0</prototype-count>
</proxool>
</something-else-entirely>
2.在自己的Java类里面注册JNDI
那就需要用到Proxool提供的另一个类:ProxoolJNDIHelper:
Properties info = new Properties();
info.setProperty("jndi-name", "jdbc-0");
info.setProperty("java.naming.factory.initial", org.apache.naming.java.javaURLContextFactory.class.getName());
info.setProperty("java.naming.factory.url.pkgs", "org.apache.naming");
// info.setProperty("java.naming.provider.url", "localhost:8888");
try {
ProxoolJNDIHelper.registerDatasource("proxool_alias", info);
} catch (ProxoolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
上面所说的2中方法都能注册一个名为jdbc-0的JNDI,
可以通过以下代码来访问数据库..
Context ctx = new InitialContext();
DataSource dataSource = (DataSource) ctx.lookup("jdbc-0");
Connection conn = dataSource.getConnection();
下面说明代码,
1.jndi-name好像不能用jdbc/xx这种名字,文档里面用的就是/datasources/UserDB,但是Tomcat启动就报错,可能和特殊字符有关,具体没测试
2.JNDI的几个参数(java.naming.factory.initial,java.naming.factory.url.pkgs,还有java.naming.provider.url),这些参数和容器有关,Tomcat就是这些参数
JBOSS的话就是:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming
分享到:
相关推荐
proxool数据库连接池
包含proxool-0.9.1.jar与proxool-cglib.jar,欢迎下载
spring+proxool配置spring+proxool配置spring+proxool配置
proxool配置参数说明。 spring结合proxool的datasource配置方法 及proxool-0.9.1.jar proxool-cglib.jar
spring配置proxool连接db2用到的proxool相关jar包:proxool-cglib.jar;proxool-0.9.1.jar ;proxool-listenerCfg.jar。
spring proxool配置资料 spring proxool配置资料spring proxool配置资料
proxool api proxool api proxool api proxool api
proxool-0.9.1.jar proxool_cglib-0.9.1.jar 用于连接池的配置
proxool-0.9.1.jar proxool-cglib.jar
java中利用proxool方式创建数据库连接池
Proxool 是一种 Java 数据库连接池技术。本材料详细描述Proxool的配置过程。
单纯的java项目使用 proxool(非web)
proxool-0.9.1 jar;proxool-cglib.jar; 数据连接池
有oracle连接池proxool 用到的jar 包 还有jdbc的驱动包 proxool的源码包 Java实现oracle proxool 单态的例子等
proxool-0.9.1.jar下载 hibernate3+ proxool-0.9.1配置说明 我刚配好,总结出来和大家分享下
Spring中使用proxool的配置 Spring中使用proxool的配置Spring中使用proxool的配置 Spring中使用proxool的配置
proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解
the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored. --> - - <proxool> - <!-- 连接池的别名 --> <alias>DBPool</alias> - <!...
1、proxool官网,下载最新的proxool-0.9.1.jar 2、创建独立的proxool.xml文件,同时存在Web的WEB-INF目录下,根据自己的数据库类型,填写不同的数据库驱动信息及具体配置信息,本文以oracle为例。 3、创建自定义...
java中利用proxool方式创建数据库连接池