【发布时间】:2016-03-15 14:22:58
【问题描述】:
经过多次尝试,组合 xa-datasource postgres 驱动程序似乎不支持具有非默认端口(5432)的故障转移配置。 我猜,驱动程序并没有实现 xa 所期望的所有方法。
如果有人能告诉我我错了,我会很高兴...
这个例子可以运行,但是使用默认端口:
<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-url 更改为
jdbc:postgresql://server1:5432/db_name, jdbc:postgresql://server2:5432/db_name -
@federico-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
-
尝试不同的
url-delimiter例如<url-delimiter>|</url-delimiter>并检查网址之间是否存在空格 -
@federico 嗨,我尝试了更多组合,但没有任何帮助,而且我对 xa 的洞察力不足以清楚地解释问题所在。 (不兼容或错误?)。无论如何,谢谢,马克
-
我不确定问题是配置 xa-datasource 端口,还是配置时无法工作。反正;这是我配置端口的方式:
/subsystem=datasources/xa-data-source=MyXA_DS/xa-datasource-properties=PortNumber:add(value=9999)。或者,您可以在 gui 控制台中将其添加为名称为PortNumber的属性。不过,我不知道这是否可以在 HA 模式下工作......
标签: datasource wildfly xa wildfly-cluster