MySQL-Verbindung Gültigkeit der test in der datasource : WÄHLEN Sie 1 oder etwas besser?

Ich bin einrichten eines failover-Clusters für MySQL in einer master/slave Architektur.
Ich bin auch Konfiguration von meinem JBoss Datasource, und ich bin auf der Suche nach dem besseren Weg, um meine Verbindung testen, wohl wissend, dass es für Alfresco (die Verwendung von Ibatis).

Sogar ich praticed MySQL, viele Male, ich weiß nicht sehr gut Einbauten Mechanismen der Ausführung im MySQL-Server.

So weit, ich bin mit dieser Abfrage um zu testen, meine SQL-Verbindung (wie in diesem thread : Datenbank-Failover in Jboss Data-Quellen)

SELECT 1;

Hier die volle datasource.

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
    <jndi-name>alfresco-datasource</jndi-name>
    <connection-url>
        jdbc:mysql://10.1.2.13,10.1.2.14:3306/alfresco
    </connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>alfresco</user-name>
    <password>alfresco</password>
    <exception-sorter-class-name>
        org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
    </exception-sorter-class-name>


    <connection-property name="readOnly">false</connection-property>
    <failOverReadOnly>false</failOverReadOnly>

    <!-- Automatic reconnecion - desactivated to preserve transactions  -->
    <!-- http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html :
    Failover happens when the driver determines that the connection has failed (checked before every query), and falls back to the first host when it determines that the host has become available again (after queriesBeforeRetryMaster queries have been issued). -->
    <!--<autoReconnect>true</autoReconnect>-->

    <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
    <valid-connection-checker-class-name>
        org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker
    </valid-connection-checker-class-name>


    <!-- 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>

    <metadata>
        <type-mapping>mySQL</type-mapping>
    </metadata>
</local-tx-datasource>

</datasources>

Ich habe mehrere Frage, die ich bin nicht in der Lage, die Antwort von mir selbst:

  • Nicht diese einfache Abfrage zwischengespeichert werden vom Ibatis (oder jeglicher Art oder ORM) ? Dies würde bedeuten, dass es zurückkehren konnte mir falsche Ergebnisse.
  • Nicht, die Abfrage zu einfach sein ? Ist es wirklich versuchen zu ausführen internen Mechanismen, die wäre repräsentativ für server die Gesundheit ? Oder wird es nur zum testen der Verbindung ?
  • Ist es wirklich ein zuverlässiger test ?
  • Es ist eine andere Art von test (bereits integriert mit Connector/J zum Beispiel) ?
  • Leistung ist für mich auch wichtig, so WÄHLEN Sie 1 ist ein guter Kompromiss zwischen den Gesundheits-check und performance

Zögern Sie nicht, zeigen Sie mir einige links (innen Stackoverflow oder nicht). Wenn diese Frage bean bereits beantwortet (es scheint nicht, soweit ich gesucht), ich werde natürlich dieses Thema löschen.

Ich würde es zu schätzen wissen, gibt der exeperience der mysql-Entwickler oder Administratoren. Ich bin auf der Suche nach der beste Weg, es zu tun.

Vielen Dank für Ihre Hilfe.

Schreibe einen Kommentar