Tomcat - JDBC连接中的多个主机

时间:2017-08-02 13:10:10

标签: tomcat jdbc

我们刚刚将一个应用程序从JBOSS升级到Tomcat。在JBOSS配置中,我们有一个“|”在连接URL上分隔的主机名列表:

<connection-url>
jdbc:oracle:thin:@hostname1:1522:servicename|jdbc:oracle:thin:@hostname2:1522:servicename 
</connection-url >

后跟分隔符标记:<url-delimeter>|</url-delimeter>

在新的Tomcat配置(server.xml)中,当我使用相同的配置URL时,它会生成错误:

<Resource name="jdbc/MyDatasource"
          auth="Container" type="javax.sql.DataSource"
          driverClassName="oracle.jdbc.OracleDriver"
          url="jdbc:oracle:thin:@<hostname1>:1522:<servicename>|jdbc:oracle:thin:@<hostanme2>:1522:<servicename>"
          username="username" password="password"
          maxActive="20" maxIdle="10" maxWaitMillis="-1"/>

任何人都可以建议我做错了吗?或者我如何让它使用多个主机?

我得到的错误是:

java.sql.SQLException: Cannot create PoolableConnectionFactory (IO Error: Invalid connection string format, a valid format is: "host:port:sid" )

1 个答案:

答案 0 :(得分:0)

正如错误消息所示,您将以host:port:sid的形式提供一个连接URL。 Tomcat doesn't know关于单个数据库的多个URL(应该是什么)。

这背后的语义是什么?如果两者相同,为什么要提供两个主机。如果它们是群集的,只需为群集提供单个地址。或者使用一个驱动程序(瘦的除外),它可以理解URL中的多个主机名(在@之后)。