我已经在 Oracle 数据库中实现了 datagaurd 以实现两台服务器的高可用性,并配置了 jdbc 设置以连接 Jboss 应用程序服务器以始终连接主数据库实例。
如果我使用以下字符串:
<connection-url>
jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=<ip1>)(PORT=<port>))(ADDRESS=(PROTOCOL=TCP)(HOST=<ip2>)(PORT=<port>)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME
= MYDB)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))))</connection-url>
当我执行切换/过滤时,ip1 已关闭,而 ip2 已启动。如果我在列表中首先指定 ip2,那么我会得到一个连接(就像我只是尝试连接到 ip2 时所期望的那样)。但是,当我首先放置 ip1 时,我会遇到与尝试直接连接到相同的错误
java.util.concurrent.ExecutionException: java.lang.RuntimeException:
java.sql.SQLException: ORA-01033: ORACLE initialization or shutdown
in progress