我们刚刚将一个应用程序从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" )
答案 0 :(得分:0)
正如错误消息所示,您将以host:port:sid的形式提供一个连接URL。 Tomcat doesn't know关于单个数据库的多个URL(应该是什么)。
这背后的语义是什么?如果两者相同,为什么要提供两个主机。如果它们是群集的,只需为群集提供单个地址。或者使用一个驱动程序(瘦的除外),它可以理解URL中的多个主机名(在@之后)。