建立基于JDBC的resin3.0.8的连接池

原创 2004年06月28日 13:27:00
        先倒一番苦水,这个连接池搞了我整整3天.现在可以和数据库联接了,但是就是不能支持负载均衡,郁闷ing.还要继续奋战.先把建立连接池的过程写出来吧,避免大家多走弯路.
resin的首页http://www.caucho.com/index.xtp [速度奇慢]
resin3.0.8下载地址http://www.caucho.com/download/resin-3.0.8.tar.gz 
(这里假设jdk已经安装/usr/local/j2sdk1.4.2_04 ,apache已经编译通过了位置是:/www)

必须确保apache是支持DSO模式的,如果不知道的,可以使用命令进行确定:
/www/bin/httpd -l | grep -i mod_so.c
如果有就继续吧......

编译resin:(文档上说建议使用gcc3.0以上,我本来是用2.95版本,编译的过程中出现warning,后来还是升级到了最新版3.4,编译mod_caucho.so出来的大小确实不一样,高版本要小很多。因此推荐使用高版本)
tar zxf resin-3.0.8.tar.gz
cd resin-3.0.8
./configure --with-apxs=/www/bin/apxs && make && make install

编译完成后,如果是apache1.3版本的话mod_caucho.so会在/www/libexec目录,如果是2.0版本的话,mod_caucho.so会在/www/modules下面,这里我用的是1.3版本。
然后就是设置环境变量:我的习惯是放到/etc/profile下面。
JAVA_HOME=/usr/local/j2sdk1.4.2_04
export JAVA_HOME
CLASSPATH=/usr/local/j2sdk1.4.2_04/lib:$CLASSPATH
export CLASSPATH

修改resin.conf,
  <database>
    <jndi-name>jdbc/oracle</jndi-name>
    <driver>
      <type>oracle.jdbc.pool.OracleConnectionPoolDataSource</type>
      <url>jdbc:oracle:thin:@localhost:1521:appdb</url>
      <user>test</user>
      <password>test</password>
    </driver>
    <prepared-statement-cache-size>8</prepared-statement-cache-size>
    <max-connections>30</max-connections>
    <max-idle-time>30s</max-idle-time>
  </database>


最后执行/usr/local/resin-3.0.8/bin/httpd.sh确报错:
conf/resin.conf:85: Can't load class `oracle.jdbc.pool.OracleConnectionPoolDataSource' in the current context.
java.lang.ClassNotFoundException: oracle.jdbc.pool.OracleConnectionPoolDataSource
这是本文要说的关键,大多数人都知道该怎么解决,但是这个问题真的缠绕了1天的时间,后来终于知道是oracle JDBC的驱动找不到。而这个驱动就是在包含在classes12.jar,可是我又找不到这个文件,find出来是classes12.zip,不管用。后来请教了一个高手后才知道该这样做:
cd /oracle/product/8.1.7/jdbc/lib/
unzip classes12.zip
jar cf classes12.jar javax oracle
rm -rf javax oracle
unzip nls_charset12.zip
jar cf nls_charset12.jar oracle
rm -rf oracle

最后在编辑CLASSPATH环境变量,而且必须要指到这个文件,不能光指这个lib目录
export CLASSPATH=/oracle/product/8.1.7/jdbc/lib/classes12.jar:$CLASSPATH
这样连接池就建立起来了!
我还要继续配置resin.conf,心中还有很多疑问。先写到这里,希望能够帮助到一些和我一样被resin搞得抓狂的人tongue_smile.gif




建立基于JDBC的resin3.0.8的连接池

  • zgqtxwd
  • zgqtxwd
  • 2008年04月25日 06:04
  • 90

建立基于JDBC的resin3.0.8的连接池

先倒一番苦水,这个连接池搞了我整整3天.现在可以和数据库联接了,但是就是不能支持负载均衡,郁闷ing.还要继续奋战.先把建立连接池的过程写出来吧,避免大家多走弯路.resin的首页:http://ww...
  • panzi667
  • panzi667
  • 2004年09月15日 16:49
  • 805

从零开始学JDBC--1.18 自定义连接池的实现(含动态代理实现)

实现自定义连接池需要具备的若干条件: 1. 定义一个类 2. 指定成员变量:    初始化连接数、    最大连接数、    当前连接数    连接池集合(可以用List实现) 3. 构...
  • u014726937
  • u014726937
  • 2016年11月18日 09:53
  • 324

单例模式下的可伸缩的数据库连接池的实现

使用数据库连接池的原因及优势        JDBC做为一种数据库访问技术,具有简单易用的优点。但在程序开发时,不使用数据库连接池的情况下,系统会存在诸多问题如:每一次Web请求都要建立依次数...
  • zhangjinpeng66
  • zhangjinpeng66
  • 2013年08月27日 21:34
  • 1311

java数据库连接池配置的几种方法

今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,希望对大家有所帮助:(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下面建文件夹ME...
  • lx19860203
  • lx19860203
  • 2014年01月07日 10:12
  • 2398

Java数据库连接池实现原理

一般来说,Java应用程序访问数据库的过程是:   ①装载数据库驱动程序;   ②通过jdbc建立数据库连接;   ③访问数据库,执行sql语句;   ④断开数据库连接。 public class ...
  • tuke_tuke
  • tuke_tuke
  • 2016年05月29日 16:33
  • 13365

JDBC连接池的简单实现

先说明一下,我本身是做android开发的,java web是我的弱项,只是近来京东云免费,于是去折腾了几下,有了些许经验,特作分享。如果文章中内容有误,还请各高手指正。 我在web端,需要连接数据库...
  • maosidiaoxian
  • maosidiaoxian
  • 2014年07月02日 21:51
  • 8137

连接池的使用以及优点

由于我也是刚看,写的东西只是自己的一些看法,可能不准确,大家有问题欢迎提出来,希望大家教教我。 首先讲述一下什么是连接池:连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程...
  • u010211479
  • u010211479
  • 2016年07月07日 09:01
  • 898

自己写JDBC连接池

1.为什么需要连接池:在J2EE开发中,性能损耗之一就是不断的去开辟IO流,在获取Conection对象连接数据库后,用户查询出Result程序就关闭连接了,这样一开一关是相当消耗性能的2.连接池所需...
  • fish9670
  • fish9670
  • 2016年10月23日 10:17
  • 891

Java中JDBC的数据库连接池

数据库连接池 池参数(所有池参数都有默认值): 初始大小:10个 最小空闲连接数:3个 增量:一次创建的最小单位(5个) 最大空闲连接数:12个 最大连接数:20个 最大的等待时间:10...
  • dzy21
  • dzy21
  • 2016年07月19日 06:09
  • 27173
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:建立基于JDBC的resin3.0.8的连接池
举报原因:
原因补充:

(最多只允许输入30个字)