Flyway-Commandline を使用して Oracle Cluster に接続しようとしています。以下を使用して DOS から正常に動作します。
# Ommitting the other params for brevity: jarDir, locations, user, password, driver etc
flyway clean -url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST = my_host_1)(PORT=8020))(ADDRESS=(PROTOCOL=TCP)(HOST = my_host_2)(PORT=8020))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MY_SERVICE_NAME)))"
しかし、Linux で同じことをすると、エラーが発生します。
ERROR: FlywayException: Unable to obtain Jdbc connection from DataSource
ERROR: Occured in com.googlecode.flyway.core.util.jdbc.JdbcUtils.openConnection() at line 56
ERROR: Caused by oracle.net.ns.NetException: NL Exception was generated
ERROR: Occured in oracle.net.resolver.AddrResolution.resolveAddrTree() at line 626
以下を使用してホストの 1 つに直接接続すると、両方のプラットフォームで正常に動作します。
flyway clean -url=jdbc:oracle:thin:@my_host_1:8020/MY_SERVICE_NAME
問題は、クラスター内の 1 つのホストがダウンすると (これは定期的に発生します)、これが機能しなくなることです。