Konfiguruję klaster pracy awaryjnej w MySQL, w architekturze master/slave. Konfiguruję także moje źródło danych JBoss i szukam lepszego sposobu przetestowania połączenia, wiedząc, że jest on przeznaczony dla Alfresco (który używa Ibatis).Test ważności połączenia MySQL w źródle danych: WYBIERZ 1 lub coś lepszego?
Nawet ja wielokrotnie zafascynowałem MySQL, nie znam dobrze wewnętrznych mechanizmów wykonywania w MySQL Server.
Dotychczas Używam tę kwerendę, aby przetestować swoje połączenie SQL (jak w tym wątku: Database Fail Over in Jboss Data sources)
SELECT 1;
tu pełne źródła danych.
<?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>
Mam kilka pytanie, że nie jestem w stanie odpowiedzieć za siebie:
- Nie będzie to proste zapytanie być buforowane przez iBatis (lub dowolnego rodzaju lub ORM)? Oznaczałoby to, że mógłbym zwrócić mi fałszywe wyniki.
- Czy to zapytanie nie będzie zbyt proste? Czy naprawdę próbuje wykonać wewnętrzne mechanizmy, które byłyby reprezentatywne dla zdrowia serwera? A może przetestuje tylko połączenie?
- Czy to naprawdę niezawodny test?
- Czy istnieje inny rodzaj testu (na przykład zintegrowany z Connector/J)?
- Wydajność jest również ważne dla mnie, więc to wybrać 1 jest dobrym kompromisem pomiędzy WPR i wydajności
nie wahaj się wskazać mi kilka linków (wewnątrz Stackoverflow lub nie). Jeśli na to pytanie odpowiedziano już na pytanie (wydaje się, że nie tak daleko, jak szukałem), oczywiście usunę ten wątek.
Bardzo doceniam zwroty exeperience dla programistów lub administratorów mysql. Szukam najlepszego sposobu na zrobienie tego.
Dzięki za pomoc.
Świetnie! To właśnie tego rodzaju wskazówki, których szukałem! –
jesteś człowiekiem, mam nadzieję, że pasuje do twojej konfiguracji jdbc. – Sebas
będę go wypróbować ASAP. I spadł, to będzie odpowiedź;). Wielkie dzięki. –