使用Oracle 9进行Java oci db连接故障转移

时间:2011-01-07 13:30:04

标签: java oracle jdbc thin oci

我们需要能够在我们当前连接的数据库主机关闭的情况下从一个数据库主机故障转移到另一个数据库主机。根据我们的阅读,“透明应用程序故障转移(TAF)”“快速连接故障转移(FCF)”仅适用于Oracle 10及更高版本。但我们的环境有Oracle 9.2.0.8。

确保数据库连接故障转移的最佳Java解决方案是什么?使用oci驱动程序似乎比瘦驱动程序更好的解决方案,但是,我们不断得到“不满意的链接错误:ocijdbc11.dll不在java.library.path”。我们没有ocijdbc11.dll,但我们在$ {ORACLE_HOME} / bin

中有 ocijdbc10.dll

环境:

  • 数据库= Oracle 9.2.0.8,RAC支持两台服务器
  • 服务器= Solaris 10
  • 客户端= Windows XP,Service Pack 3
  • JDK = 1.6.0_20
  • Library = ojdbc6.jar
  • 客户端拥有Oracle胖客户端 10.1.0.2已安装。这使他们的oracle bin目录中有ocijdbc10.dll

我们在tnsnames.ora中的连接字符串:
MY_SID =
     (DESCRIPTION =
      (FAILOVER = ON)
  (ADDRESS =(PROTOCOL = TCP)(HOST =主机1)(PORT = 1521))
  (ADDRESS =(PROTOCOL = TCP)(HOST =主机2)(PORT = 1521))
  (CONNECT_DATA =
     (SERVICE_NAME = db.fully.qualified.name)
     (failover_mode的=
       (TYPE =选择)
       (METHOD = basic))))

我们按如下方式创建数据源:

  • BasicDataSource ds = new
  • 的BasicDataSource();
  • ds.setUsername(“用户名”);
  • ds.setPassword(“密码”);
  • ds.setUrl(“JDBC:预言:OCI:@MY_SID”);
  • ds.setDriverClassName( “oracle.jdbc.driver.OracleDriver”);

1 个答案:

答案 0 :(得分:1)

如果您对10g客户端收到“不满意的链接错误:ocijdbc11.dll不在java.library.path”,听起来好像您正在使用11g jdbc驱动程序。您需要使用10g jdbc驱动程序。