我们计划从Jboss 5迁移到Wildfly 8.2。在数据库方面,我们有一个带有MariaDB 10的三节点Galera集群。
在Jboss 5上,我们在ds.xml文件中进行了以下设置:
...
<connection-url>jdbc:mysql:loadbalance://ip-node1,ip-node2,ip-node3/DBname</connection-url>
...
Jboss 5上的一切都运行良好。但是我无法在Wildfly 8.2上取得同样的成绩。从管理控制台,我能够毫无问题地添加非集群数据源,并且可以正常工作。
示例网址:jdbc:mysql://ip-node1/DBname
但是当我尝试按上述方式添加群集URL时,我收到以下错误:
Unexpected HTTP response: 500
Request
{
"address" => [
("subsystem" => "datasources"),
("xa-data-source" => "dsName")
],
"operation" => "test-connection-in-pool"
}
Response
Internal Server Error
{
"outcome" => "failed",
"failure-description" => "JBAS010440: failed to invoke operation: JBAS010447: Connection is not valid",
"rolled-back" => true
}
如何将Wildfly连接到群集数据源?我知道可以插入像HAProxy这样的外部负载均衡器,但我更希望保持架构尽可能简单。
答案 0 :(得分:0)
您必须在standalone.xml
内的wildfly-8.2.0.Final_1\standalone\configuration\
文件中提及数据源,如下所示。
<datasource jndi-name="java:/jdbc/DB1" pool-name="PostgresDS" enabled="true" use-java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/DB1</connection-url>
<driver>postgres</driver>
<security>
<user-name>DB1</user-name>
<password>DB1</password>
</security>
</datasource>
<datasource jndi-name="java:/jdbc/DB2" pool-name="PostgresDS1" enabled="true" use-java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/DB2</connection-url>
<driver>postgres</driver>
<security>
<user-name>DB2</user-name>
<password>DB2</password>
</security>
</datasource>