經過多次嘗試,看起來組合xa-datasource < - > postgres驅動程序不支持具有非默認端口(5432)的故障轉移配置。 我想,驅動程序不會實現xa所期望的所有方法。在HA模式下使用Postgresql JDBC驅動程序配置xa-datasource(Wildfly)
我會很高興,如果有人能告訴我,我錯了......
這個例子是工作,但使用默認端口:
<xa-datasource jndi-name="java:/Foo" pool-name="Foo" enabled="true" use-ccm="true" statistics-enabled="true">
<xa-datasource-property name="url">
jdbc:postgresql://server1,server2/db_name
</xa-datasource-property>
<xa-datasource-property name="ApplicationName">
MyApp
</xa-datasource-property>
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
<driver>postgresql-jdbc4</driver>
<url-delimiter>,</url-delimiter>
<xa-pool>
<min-pool-size>6</min-pool-size>
<max-pool-size>40</max-pool-size>
<prefill>true</prefill>
<is-same-rm-override>false</is-same-rm-override>
<interleaving>false</interleaving>
<pad-xid>false</pad-xid>
<wrap-xa-resource>false</wrap-xa-resource>
</xa-pool>
<security>
<user-name>foo</user-name>
<password>blah</password>
</security>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<blocking-timeout-millis>3000</blocking-timeout-millis>
<idle-timeout-minutes>60</idle-timeout-minutes>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</xa-datasource>
嘗試改變connction,網址爲'JDBC:在PostgreSQL://服務器1:5432/DB_NAME,JDBC:在PostgreSQL://服務器2:5432/db_name' –
@費德里科-Sierra的感謝,但這不起作用無論是。 jdbc:postgresql:// server1:5555/db_name,jdbc:postgresql:// server2:5555/db_name => org.postgresql.util.PSQLException:錯誤:沒有這樣的數據庫:db_name,jdbc:postgresql:// server2:5555/db_name – Marc
嘗試一個不同的'url-delimiter'例如' | url-delimiter>'並且檢查URLs之間不存在空間 –