0

Jboss 5 から Wildfly 8.2 に移行する予定です。データベース側には、MariaDB 10 を備えた 3 ノードの Galera クラスターがあります。

Jboss 5 では、ds.xml ファイルに次の設定がありました。

...
<connection-url>jdbc:mysql:loadbalance://ip-node1,ip-node2,ip-node3/DBname</connection-url>
...

Jboss 5 ではすべてがうまく機能しましたが、Wildfly 8.2 では同じことを達成できません。管理コンソールから、クラスター化されていないデータソースを問題なく追加でき、機能しました。URL の例: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 のような外部ロード バランサーをプラグインできることはわかっていますが、アーキテクチャをできるだけシンプルに保ちたいと考えています。

4

1 に答える 1

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>
于 2015-09-21T11:59:43.240 に答える