2017-08-02 11 views
0

アプリケーションのうちの1つをJBOSSからTomcatにアップグレードしました。 JBOSSの設定では、 "|"接続URLのホスト名の区切りリスト:区切りタグが続くTomcat - JDBC接続の複数のホスト

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

:新しいTomcatの設定(server.xmlの)で<url-delimeter>|</url-delimeter>

私は同じ設定の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

エラーメッセージが言うように、フォームのホストで接続URLをあげる:ポート:SID。 Tomcat doesn't know複数のURLについて(単一のデータベースとなるべき)

この背後にある意味は何ですか?両方が同じ場合は、なぜ2つのホストを提供するのですか?クラスタ化されている場合は、クラスタの単一のアドレスを指定してください。または、URLの一部(@の後ろ)に複数のホスト名を理解できるドライバ(薄型以外)を使用してください。

+0

これはクラスタ化されたDBなので、2つのホストが同じDBを指しています。 シン・ドライバー以外のドライバーが複数のホスト名を認識できることを知っていますか? – Dan

+0

私が重複してリンクした質問への回答を参照してください –

+0

リンクをありがとう、それは単一のデータソース内の複数のDBを指す唯一の方法だと思われます。 – Dan