0

2 つの異なるマシン (つまり、異なる IP) でデータベースを使用して MySQL クラスタリング用に JBOSS を構成する必要があります。

db のアクティブ/アクティブ構成が望ましい -

  1. 両方のデータベースが同時に更新される

  2. 負荷分散

  3. フェイルオーバー処理 - 最初のデータベースに障害が発生した場合に他のデータベースに切り替える

これらすべてを実現するために mysql-ds.xml ファイルを構成するにはどうすればよいですか? それだけで私の問題は解決しますか、それとも他の構成変更を行う必要がありますか?

これまでのところ、次のことを試しましたが、あまり成功していません-

コードサンプル 1 -

<local-tx-datasource>
            <jndi-name>/abc</jndi-name>
            <connection-url>jdbc:mysql:loadbalance://ip1:portno1,ip2:portno2/dbname?loadBalanceBlacklistTimeout=5000</connection-url> 
            <driver-class>com.mysql.jdbc.Driver</driver-class>
            <user-name>def</user-name>
            <password>defpassword</password>
            <exception-sorter-class-name>path to exception sorter class</exception-sorter-class-name>
    </local-tx-datasource> 

コードサンプル 2 -

<local-tx-datasource>
        <jndi-name>/abc</jndi-name>
        <connection-url>jdbc:mysql:loadbalance://ip1:portno1,ip2:portno2/dbname?loadBalanceBlacklistTimeout=5000</connection-url> 
        <url-delimiter>|</url-delimiter>
            <autoReconnect>true</autoReconnect>
            <failOverReadOnly>false</failOverReadOnly>
            <maxReconnects>0</maxReconnects>
            <initialTimeout>15</initialTimeout>
            <idle-timeout-minutes>0</idle-timeout-minutes>
            <connection-property name="readOnly">false</connection-property>
            <min-pool-size>5</min-pool-size>
            <max-pool-size>20</max-pool-size>

        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <user-name>def</user-name>
        <password>defpassword</password>
        <exception-sorter-class-name>path to exception sorter class</exception-sorter-class-name>
</local-tx-datasource> 

さらに何が必要ですか?

ありがとう

4

1 に答える 1

1

これは、mysql-ds.xml データソース ファイル構成を使用することによってのみ実現できます。あなたがする必要があるのは次のことです。

注:データベース ドライバーには、mysql-connector-java-5.1.13-bin.jar 以降を使用する必要があります。以前のバージョンにはいくつかのバグ ( http://bugs.mysql.com/bug.php?id=31053 ) があり、多くの問題が発生するため、回避してください。mysql-ds.xml ファイルのスニペットを提供しています。

<local-tx-datasource>
    <jndi-name>DATA_SOURCE_NAME</jndi-name>
    <connection-url>jdbc:mysql:loadbalance://IP1:port1,IP2:port2</connection-url>
    <user-name>username</user-name>
    <password>password</password>
    <driver-class>org.gjt.mm.mysql.Driver</driver-class>
    <check-valid-connection-sql>select count(*) from your_table_name</check-valid-connection-sql>
</local-tx-datasource>

于 2013-07-25T07:36:31.483 に答える