我正在尝试创建一个JDBC连接字符串,该字符串将允许在主数据库发生故障时故障转移到辅助数据库。我目前有以下字符串,但当主数据库失败时,字符串不会连接到辅助数据库。如果我把次要细节放在字符串的第一位,它就可以工作。看起来,如果字符串的第一部分命中失败的数据库,它不会继续到字符串的第二部分。
jdbc:oracle:thin:@
(
DESCRIPTION_LIST=
(LOAD_BALANCE=off)
(FAILOVER=on)
(DESCRIPTION=
(CONNECT_TIMEOUT=3)
(RETRY_COUNT=3)
(ADDRESS_LIST=
(LOAD_BALANCE=on)
(ADDRESS=
(PROTOCOL=TCP)
(HOST=11.111.1.111)
(PORT=1234)
)
)
(
CONNECT_DATA=(SERVICE_NAME=<servicename1>)
)
)
(DESCRIPTION=
(ADDRESS_LIST=
(LOAD_BALANCE=on)
(ADDRESS=
(PROTOCOL=TCP)
(HOST=22.222.2.222)
(PORT=1234)
)
)
(
CONNECT_DATA=(SERVICE_NAME=servicename2)
)
)
)
有什么建议吗?
1条答案
按热度按时间6ju8rftf1#
如果你使用的是JDBC驱动程序11 g.您需要使用版本www. example www.example.com 。2.0.4.
如果您使用JDBC驱动程序12 c或更高版本。CONNECT_TIMEOUT被部分忽略。您必须使用TRANSPORT_CONNECT_TIMEOUT。只是要注意TRANSPORT_CONNECT_TIMEOUT值可以是秒或毫秒-取决于JDBC驱动程序版本。
尝试像这样使用连接字符串: