Сбой базы данных в источниках данных Jboss - PullRequest
5 голосов
/ 23 февраля 2012

В источнике данных JBoss, как я могу дать несколько строк подключения для сбоя базы данных, в котором я хочу.

Будет две базы данных Mysql с одинаковыми таблицами, скажем, DB1 и DB2.Я хочу вставить данные в DB1, если DB1 не работает, мне нужно вставить его в DB2.Во время вставки в DB2, если DB1 подходит, мне нужно вставить остальные данные в DB1.Как я могу настроить это в моем JBoss?

Ответы [ 2 ]

2 голосов
/ 14 мая 2012
<?xml version="2.0" encoding="UTF-8"?>
<!-- $Id$ -->

 <!--  Datasource config for MySQL using 3.0.9 available from:
    http://www.mysql.com/downloads/api-jdbc-stable.html
      -->
  <datasources>
    <local-tx-datasource>

      <jndi-name>MySqlDSTest</jndi-name>
      <use-java-context>true</use-java-context>
      <connection-url>jdbc:mysql:loadbalance://ip1,ip2:3306/dbname?</connection-url>
      <url-delimiter>,</url-delimiter>
      <driver-class>com.mysql.jdbc.Driver</driver-class>
      <connection-property name="readOnly">false</connection-property>
      <autoReconnect>true</autoReconnect>
      <failOverReadOnly>false</failOverReadOnly>
      <user-name>userName</user-name>
      <password>password</password>
      <check-valid-connection-sql>selcect count(*) from TEST_TAB</check-valid-connection-sql>
      <maxReconnects>0</maxReconnects>
      <initialTimeout>15</initialTimeout>
      <idle-timeout-minutes>0</idle-timeout-minutes>
      <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
      <!-- Advanced options for the MySQL Driver can be set with
              <connection-property name="property">value</connection-property>
        -->
      <min-pool-size>5</min-pool-size>
      <!-- Don't set this any higher than max_connections on your
           MySQL server, usually this should be a 10 or a few 10's
           of connections, not hundreds or thousands -->
      <max-pool-size>20</max-pool-size>
      <!-- Don't allow connections to hang out idle too long,
           never longer than what wait_timeout is set to on the
           server...A few minutes is usually okay here,
           it depends on your application
           and how much spikey load it will see -->

      <!-- If you're using Connector/J 3.1.8 or newer, you can use
           our implementation of these to increase the robustness
           "mysql-ds.xml" 64L, 3683C      of the connection pool. -->
      <exception-sorter-class-name>
         com.mysql.jdbc.integration.jboss.ExtendedMysqlExceptionSorter
      </exception-sorter-class-name>
      <valid-connection-checker-class-name>
         com.mysql.jdbc.integration.jboss.MysqlValidConnectionChecker
      </valid-connection-checker-class-name>
      <!-- sql to call when connection is created -->
      <new-connection-sql>select 1</new-connection-sql>
      <!-- sql to call on an existing pooled connection when it is obtained from pool -    MySQLValidConnectionChecker is preferred for newer drivers -->
      <check-valid-connection-sql>
        select 1
      </check-valid-connection-sql>
      <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml -->
      <metadata>
        <type-mapping>mySQL</type-mapping>
      </metadata>
    </local-tx-datasource>
  </datasources>

Это будет работать для отображения jboss

2 голосов
/ 29 февраля 2012

Следуйте этой документации. Jboss имеет настройки конфигурации. https://community.jboss.org/wiki/JBossJCADatabaseFailover

Кроме того, если вы НЕ используете JNDI и обычный вызов JDBC, у меня есть другое решение - скажем, вы делаете вызов jdbc, тогда вам нужно будет установить соединение с БД, если БД не работает, вы получите исключение соединения с БД, в блоке try catch, если вы столкнулись с исключением соединения, создайте соединение в самом блоке catch для второй базы данных: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...