第一个方法是在容器,也就是Tomcat上做配置,但是,有时候会不适用,比如虚拟主机,它可能不允许你在机器上做配置,那样,就只能从自身的程序着手.
首先,写一个Proxool的配置文件.....放在 WEB-INF 目录下,下面是一个例子
<?
xmlversion="1.0"encoding="UTF-8"
?>
<!--
theproxoolconfigurationcanbeembeddedwithinyourownapplication's.Anythingoutsidethe"proxool"tagis
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
>
SelectSysdateFormdual
</
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
>
这样在应用启动之后,就能通过以下代码来访问到数据库
Connectionconn
=
DriverManager.getConnection(
"
proxool.proxool_alias
"
);
Statementstmt
=
conn.createStatement();
ResultSetrs
=
stmt.executeQuery(
"
Select*Fromtest
"
);
/*以下是重点*/
但是我们需要的是注册一个JNDI,
有2种方法
1.配置文档里面直接注册,这样配置:
<?
xmlversion="1.0"encoding="UTF-8"
?>
<!--
theproxoolconfigurationcanbeembeddedwithinyourownapplication's.Anythingoutsidethe"proxool"tagis
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
>
SelectSysdateFormdual
</
house-keeping-test-sql
>
<
prototype-count
>
0
</
prototype-count
>
</
proxool
>
</
something-else-entirely
>
2.在自己的Java类里面注册JNDI
那就需要用到Proxool提供的另一个类:ProxoolJNDIHelper:
Propertiesinfo
=
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
(ProxoolExceptione)
{
//
TODOAuto-generatedcatchblock
e.printStackTrace();
}
上面所说的2中方法都能注册一个名为jdbc-0的JNDI,
可以通过以下代码来访问数据库..
Contextctx
=
new
InitialContext();
DataSourcedataSource
=
(DataSource)ctx.lookup(
"
jdbc-0
"
);
Connectionconn
=
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是基于Proxy的概念,它在数据库连接上创建了一个代理层,使得多个客户端可以共享同一个物理连接,从而减少了创建和销毁数据库连接的开销。这个代理层能够跟踪和监控每个连接的使用情况,包括连接的生命周期、...
Proxool是一个开源的、基于Java的数据库连接池实现,它提供了一种灵活且可扩展的方式来管理和优化数据库连接。在这个0.9.1版本的源代码中,我们可以深入理解其内部工作原理,以及如何配置和定制以适应各种项目需求。...
在Spring框架中集成Proxool,可以通过XML配置文件来创建一个`orgproxool.sql.DriverProxyDataSource`类型的DataSource bean。下面是一个示例配置: ```xml <bean id="dataSource" class="orgproxool.sql....
然后,在应用程序中通过JNDI查找或直接初始化Proxool的DataSource实例,即可开始使用数据库连接池。 总之,Proxool是一个强大的数据库连接池解决方案,它与CGLIB的结合使用使得数据库操作更加高效和可控。开发者...
数据库连接池是一种在多线程、高并发环境下优化数据库访问性能的技术,通过预先创建并维护一定数量的数据库连接,避免了频繁创建和销毁连接的开销。 0.9.1是Proxool的一个版本号,这表明我们处理的是该项目的一个...
在上述配置中,我们通过`hibernate.proxool.properties`指定了Proxool的配置文件路径,`hibernate.proxool.pool_alias`设置了连接池的别名,这个别名需要与Proxool配置文件中的alias一致。 接下来,我们需要创建...
在配置Proxool时,我们需要在应用的配置文件(如`proxool.properties`)中定义连接池的相关属性。这些属性包括数据库URL、用户名、密码、驱动类名等。例如: ``` proxool.pool-name=myPool proxool.driver-url=...
在Spring中配置Proxool时,如果`houseKeepingSleepTime`的类型不正确,会导致Spring无法将配置的值正确注入到Proxool的配置中,从而影响到连接池的运行。 为了解决这个问题,Proxool的开发者在0.9.1修正版中将`...
2. **配置Proxool**:在项目的配置文件(如hibernate.cfg.xml)中,我们需要定义一个Proxool的连接池。这通常包括以下属性: - `proxool.hibernate.pool_name`:连接池的唯一标识。 - `proxool.hibernatedriver....
标题 "proxool 的使用配置" 暗示我们将探讨一个名为 Proxool 的数据库连接池的配置和使用方法。Proxool 是一个轻量级、高效的开源 Java 数据库连接池,它提供了一种灵活的方式来管理和控制数据库连接。在这个主题中...
"proxool-0.9.1-source.tar.gz" 是一个包含 Proxool 源代码的压缩文件,版本为 0.9.1。Proxool 是一个开源的 Java 连接池库,它提供了数据库连接池管理服务,用于提高应用在处理大量并发数据库请求时的性能和效率。...
在IT行业中,数据连接池是数据库管理中一个重要的优化手段,它有效地提高了应用程序对数据库的访问效率。...在开发和运维过程中,理解并掌握其工作原理和配置方法,对于优化数据库访问性能具有重要意义。
JavaEE源代码 proxool-0.8.3JavaEE源代码 proxool-0.8.3JavaEE源代码 proxool-0.8.3JavaEE源代码 proxool-0.8.3JavaEE源代码 proxool-0.8.3JavaEE源代码 proxool-0.8.3JavaEE源代码 proxool-0.8.3JavaEE源代码 ...
the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored. --> - <something-else-entirely> - <proxool> - <!-- 连接池的别名 --> ...
proxool api proxool api proxool api proxool api
`proxool-0.8.3.zip` 是一个包含 `Proxool` 数据库连接池的老版本资源包,主要用于优化数据库连接管理,特别是在使用 Hibernate 框架时。`Proxool` 是一个轻量级的连接池实现,它允许应用程序高效地管理和复用数据库...
标题中的"proxool-0.9.0RC2-source.tar.gz"是一个开源软件的源代码压缩包,其中"proxool"是项目的名称,"0.9.0RC2"代表这是该软件的0.9.0版本的第二个候选发布版(Release Candidate 2)。".tar.gz"扩展名表明这是一...
在实际应用中,Proxool的配置通常包括设置连接池的最大连接数、最小连接数、超时时间等参数。这些参数可以根据系统的负载情况和数据库的处理能力进行调整,以达到最优的性能和资源利用。此外,Proxool还提供了监控和...
修正houseKeepingSleepTime属性为Long类型 <!-- 间隔 5分钟检查所有连接是否需要关闭或创建 --> <property name="houseKeepingSleepTime" value="300000" />
标题中的“proxool配置详解”指的是Proxool,这是一个开源的数据库连接池管理工具,它在Java应用程序中用于管理和优化数据库连接。Proxool的主要作用是提高应用性能,通过复用已建立的数据库连接,避免频繁创建和...