Vincent.Chan‘s Blog

常用链接

统计

积分与排名

网站

最新评论

Proxool - 組態設定

Proxool 提供許多方式可以設定相關的參數,這邊先介紹三種,另外還可以直接在Web應用程式中進行設定的方法,這在下一個主題中再說明。

 可以直接在Java程式中使用java.util.Properties設定,例如:

Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Properties info = new Properties();
info.setProperty("proxool.maximum-connection-count", "20");
info.setProperty("proxool.house-keeping-test-sql", "select CURRENT_DATE");
info.setProperty("user", "caterpillar");
info.setProperty("password", "123456");
Connection conn = DriverManager.getConnection(
"proxool.example:com.mysql.jdbc.Driver:jdbc:mysql://localhost:3306/GUESTBOOK", info);

 當然這種方式是硬編碼(hard code)在程式中,要改變參數時必須修改原始檔案並重新編譯,我們也可以使用XML檔案或屬性檔來進行設定,使用XML檔案的方式如下:

proxool.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<something-else-entirely>
<proxool>
<alias>example</alias>
<driver-url>jdbc:mysql://localhost:3306/GUESTBOOK</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="caterpillar"/>
<property name="password" value="123456"/>
</driver-properties>
<maximum-connection-count>10</maximum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
</something-else-entirely>

 其中example是連接池的別名(Alias),我們使用org.logicalcobwebs.proxool.configuration.JAXPConfigurator來讀取XML,以下的示範如何取得連線:

Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
JAXPConfigurator.configure("proxool.xml", false); // false 表示不驗證 XML
Connection conn = DriverManager.getConnection("proxool.example");

 我們也可以使用屬性檔來配置Proxool,屬性檔的內容如下:

proxool.properties
jdbc-0.proxool.alias=example
jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/GUESTBOOK
jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver
jdbc-0.user=caterpillar
jdbc-0.password=123456
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE

 我們使用org.logicalcobwebs.proxool.configuration.PropertyConfigurator來讀取屬性檔,下面示範如何取得連線:

Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
org.logicalcobwebs.proxool.configuration.PropertyConfigurator.configure("proxool.properties");
Connection conn = DriverManager.getConnection("proxool.example");

我碰到一个大问题,在数据库连接最大活动时间设置为:5 分钟,最大存活时间 10 分钟,可是 连接超时后没有被杀死,而且都是红色不可用。如何解决呀? 我使用 oracle 9i ,配置了两个连接池。

我还试着执行下面这个清除语句:org.logicalcobwebs.proxool.ProxoolFacade.killAllConnections("btcn");
org.logicalcobwebs.proxool.ProxoolFacade.shutdown(0); // 关闭所有连接池

不起作用,死连接一大片,没有被清除,请指教

posted on 2006-03-23 00:04 Vincent.Chen 阅读(1552) 评论(2)  编辑  收藏 所属分类: Java

评论

# 请教一个proxool配置的问题,老是解决不了 2006-08-01 13:47 poplong

在工程的web.xml中设置了servlet:
<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/classes/Proxool.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletConfigurator</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
以上是为了找到WEB-INF/class/Proxool.properties 这个配置文件的,在页面中使用连接池连接数据库没有任何问题,可以顺利得到connection,并进行操作,但是,页面中只要是出现如下标签的地方:<img src="img.jpg">还有<link rel="stylesheet" type="text/css" media="screen" href="../css/*.css" />还有<script type="text/javascript" src="../js/*.js">的地方全部失效,图片无法显示,js和css也无法引入。

但是只要把web.xml中添加的servlet去掉,图片显示和js,css的引入就全部正常了。我还试过在web.xml中添加其他的servlet的方法,包括配置proxool.xml文件和直接在servlet中配置数据库连接池参数,都是同样的问题,实在是十分苦恼,不知道有没有什么解决方法,是不是我在哪个细节的地方忽略了,还是proxool本身的bug??
不知道你有没有出现过这种问题?

我的联系方式是chenjw_2001@yahoo.com.cn
希望你能够把你的建议发邮件给我,真的十分感谢!  回复  更多评论   

# 还有个proxool的问题 2006-08-01 13:54 poplong

我以前就按照proxool 提供的文档进行过配置,其中xml的方式(JAXPConfigurator.configure("WEB-IF/classes/proxool.xml", false); )和properties文件(org.logicalcobwebs.proxool.configuration.PropertyConfigurator.configure("WEB-IF/classes/proxool.properties");)的方式我都试过了,但是老是提示“系统找不到指定的路径。”,我的xml文件是放在WEB-IF/classes/proxool.xml这个地方的。
请问是不是我哪个地方做错了?
附proxool.xml:
<?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. -->
<proxool>
<alias>csirPool</alias>
<driver-url>jdbc:mysql://localhost:3306/csirdb</driver-url>
<driver-class>org.gjt.mm.mysql.Driver</driver-class>
<driver-properties>
<property name="user" value="root"/>
<property name="password" value="root"/>
</driver-properties>
<maximum-connection-count>10</maximum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>

我的联系方式是chenjw_2001@yahoo.com.cn
希望你可以发邮件给我,一起讨论这个问题,谢谢了!!  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: