`

proxool的几种注册方式

    博客分类:
  • j2ee
阅读更多

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数据库连接池

    proxool 的使用 配置

    Proxool 是一个轻量级、高效的开源 Java 数据库连接池,它提供了一种灵活的方式来管理和控制数据库连接。在这个主题中,我们将深入理解 Proxool 的核心概念、配置选项以及如何在实际项目中应用它。 首先,了解 ...

    proxool-0.9.1.jar,proxool-cglib.jar

    数据库连接池是一种在多线程、高并发环境下优化数据库访问性能的技术,通过预先创建并维护一定数量的数据库连接,避免了频繁创建和销毁连接的开销。 0.9.1是Proxool的一个版本号,这表明我们处理的是该项目的一个...

    oracle proxool jar jdbc jar包 proxool源码包 Java oracle proxool 实例

    Oracle Proxool是一款开源的数据库连接池,它提供了一种高效、灵活的方式来管理数据库连接,以提高Java应用程序的性能和可扩展性。在Java应用程序中,数据库连接的创建和关闭是一个耗时的操作,通过使用连接池,我们...

    hibernate3+ proxool-0.9.1配置 和proxool-0.9.1.jar

    Hibernate3是一款流行的持久层框架,它允许开发者用面向对象的方式来操作数据库,而Proxool是Apache的一个开源项目,提供了一个基于池的数据库连接管理工具,可以提高数据库访问性能。 首先,我们来详细了解一下...

    proxool配置参数说明及proxool-0.9.1相关jar包及spring配置方法

    Proxool是一个开源的数据库连接池实现,它提供了一种灵活的方式来管理和控制数据库连接。在使用Proxool时,理解其配置参数是至关重要的,这些参数可以调整连接池的行为,以适应不同应用场景的需求。以下是一些主要的...

    proxool-0.9.1.jar proxool_cglib-0.9.1.jar

    Proxool是一个开源的数据库连接池,它提供了一种灵活且高效的解决方案来管理数据库连接。在Java应用程序中,尤其是在处理大量并发用户访问时,连接池能够显著提高性能和资源利用率。 **Proxool连接池** Proxool是...

    java项目使用 proxool

    总之,Proxool为Java项目提供了一种简单而有效的数据库连接池解决方案,通过合理配置和使用,可以显著提升应用程序的数据库操作性能,同时降低资源消耗。在非Web环境中,开发者可以直接在应用程序中集成Proxool,以...

    spring proxool配置资料

    Spring Proxool的配置主要涉及以下几个方面: 1. **引入依赖**:在项目中使用Spring Proxool,首先需要在项目的类路径下添加对应的jar包,或者在Maven或Gradle的依赖管理中引入Proxool和Spring的相关依赖。 2. **...

    proxool-0.9.1.zip

    标题中的"proxool-0.9.1.zip"是一个压缩包文件,其中包含了与Proxool相关的组件。Proxool是Java的一个开源数据库连接池,它允许开发者在应用程序中更有效地管理和控制数据库连接。这个0.9.1版本可能是Proxool的一个...

    proxool与mybatis整合例子

    本文将深入探讨如何将`Proxool`数据库连接池与`Mybatis`持久层框架进行整合,无需依赖`Spring`框架。我们将讨论配置过程、核心概念以及整合的步骤。 首先,让我们了解`Proxool`。Proxool是基于Apache 2.0协议的一个...

    proxool连接池用户名密码加密

    Proxool是一个开源的、轻量级的Java数据库连接池实现,它提供了一种高效、灵活的方式来管理数据库连接。在某些场景下,为了保护敏感信息,如数据库的用户名和密码,我们需要对这些数据进行加密处理。"proxool连接池...

    proxool-0.9.1-api.chm

    proxool api proxool api proxool api proxool api

    proxool-0.9.1.jar

    java中利用proxool方式创建数据库连接池

    spring+proxool配置spring+proxool配置

    而Proxool是Oracle公司开源的一个数据库连接池组件,它提供了高效的数据库连接管理,有助于减少数据库资源的消耗,提高系统性能。本篇文章将深入探讨如何在Spring框架中配置和使用Proxool。 首先,我们需要了解...

    JAVA数据库连接池proxool

    Java数据库连接池(JDBC Connection Pool)是一种管理数据库连接的技术,它通过预先创建并维护一定数量的数据库连接,为应用程序提供高效、便捷的数据库访问方式。Proxool是Apache Software Foundation开发的一个...

    Proxool-数据源配置详解

    Proxool是一款开源的Java数据库连接池,它提供了一种灵活、高效的方式来管理数据库连接。在Java应用程序中,数据源(DataSource)是用于管理和控制数据库连接的关键组件,它能有效地减少数据库连接的创建和销毁,...

    Proxool 在 Hibernate 中的典型配置

    Proxool是一种Java数据库连接池技术,由SourceForge提供支持,作为开源项目,其设计目标是为Java应用提供一个健壮且易用的数据库连接管理方案。Proxool连接池特别强调易用性和监控功能,使得开发者能够容易地发现...

    proxool相关jar包

    标题中的“proxool相关jar包”指的是用于Spring框架与DB2数据库交互的一种连接池管理工具——Proxool的Java库。Proxool是Apache软件基金会的一个项目,它提供了一个轻量级、高效的数据库连接池解决方案,能有效地...

Global site tag (gtag.js) - Google Analytics