Java 如何为一个数据库写入2个ip?

Java 如何为一个数据库写入2个ip?,java,oracle,configuration,datasource,Java,Oracle,Configuration,Datasource,我有数据源配置文件,其中有上下文和资源 像这样 <Context> <Resource name="jdbc/pds" auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" factory="myPackage.EncryptedDataSourceFactory" logAbandoned="true"

我有数据源配置文件,其中有
上下文
资源

像这样

<Context>
     <Resource
        name="jdbc/pds"
        auth="Container"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        factory="myPackage.EncryptedDataSourceFactory"
        logAbandoned="true"
        maxTotal="30"
        maxIdle="10"
        maxWaitMillis="1000"
        password="encryptedPassword"
        removeAbandoned="true"
        removeAbandonedTimeout="60"
        type="javax.sql.DataSource"
        url="jdbc:oracle:thin:@myFirstIP:port:MYDB"
        username="username"
        accessToUnderlyingConnectionAllowed="true"
    validationQuery="select 1 from dual" />
</Context>

我的目标是使用ip
myFirstIP
从数据库获取数据,但如果由于某种原因无法执行
validationQuery
,例如数据库被禁用,我希望使用ip
mySecondIP
从数据库获取连接和数据。 我知道,如果禁用了
myFirstIP
,我可以创建第二个具有
mySecondIP
ip的资源,并在应用程序端(用JAVA)检查它,创建与
mySecondIP
的连接。但如果我不想在应用程序端进行额外的检查,我可以使用此配置文件与
myFirstIP
建立默认连接吗?如果它被
mySecondIP
禁用,是否可以?如果不可能,我的问题的最佳解决方案是什么


我使用的是
oracle11.2.0.2.0
java8
tomcat8.5/wildfly9
,使用带有2个或更多地址的TNS关键字值语法

 url="jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)(LOAD_BALANCE=off)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.88)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.89)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME = D88)(FAILOVER_MODE=(TYPE=select)(METHOD=basic))(SERVER = DEDICATED)))";

看看这个…看起来很相似。我在哪里可以输入db\U名称?如果您知道service\U名称,那么
(service\u name=D88)
,或者如果ORACLE\u SID,那么
(SID=D88)
语法是这样的,我只需要更改主机和服务\u名称值,第一个地址将默认为active ya?@Gog1nA您需要更改
主机
服务\u名称
。默认情况下,第一个地址用于连接,如果第一个地址没有所需的数据库
服务\u名称
,或者第一个地址未激活,则尝试连接到第二个地址。