Java连接Oracle集群两种方式的比较

  最近一直在和Oracle集群打交道,也参考了网上的资料,主要集中在使用thin方法和OCI方法,今天(已经过了12点,应该说昨天才对,呵呵)在做数据传输时碰到了个问题,原本在Eclipse下运行正常的程序,把bin目录下编译好的class文件用wrapper工具打包为系统服务启动后,发行程序报错了:no ocijdbc10 in java.library.path,我已经安装了OracleClient并配置好了运行环境,而且在Eclipse下运行又是正常的,后来尝试了多种方法:注册OracleClient安装目录里的ocijdbc10.dll,重新构建工程,检查lib中的jar包和Eclipse的buildpath里的jar是否有不一致的。结果还是报同样的错误。开来通过OCI的方式连接Oracle数据库集群对机器环境 的要求还是比较高,这不符合Java灵活性,独立性的特点。最后我决定使用thin详细模式连接数据库。

  经测试,在只修改连接字符串jdbc:oracle:oci:@mydbname为jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =db1_vip)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST =db2_vip)(PORT = 1521))(LOAD_BALANCE=yes)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = mydbname)))后,程序正常运行。因为没有找到问题所在,心里一直耿耿于怀,暂且做个记录,以后找到问题出处后,在做详细记录。

  在项目中使用Java连接Oracle11G集群的写法:

         jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=IP1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=IP2)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=IP3)(PORT=1521))(LOAD_BALANCE=YES)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=myTest)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5))))

       使用Oracle SQL Devleper连接配置如下:

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值