Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

6.6. Validation de la connexion à la base de données

6.6.1. Configuration des paramètres de validation de connexion de la base de données

Aperçu

En raison de problèmes de maintenance de base de données, de problèmes de réseau ou autres événements peuvent amener JBoss EAP 6 à perdre la connexion à la base de données. Vous activez la validation de la connexion à la base de données par l'élément < validation > dans la section < datasource > du fichier de configuration du serveur. Suivez les étapes ci-dessous pour configurer les paramètres de source de données pour activer la validation de connexion de la base de données dans JBoss EAP 6.

Procédure 6.10. Configuration des paramètres de validation de connexion de la base de données

  1. Choisissez une méthode de validation

    Veuillez sélectionner une des méthodes de validation suivantes.
    • <validate-on-match>true</validate-on-match>

      Lorsque l'option < validate-on-match > a comme valeur true, la connexion à la base de données est validée à chaque retrait du pool de connexions en utilisant le mécanisme de validation spécifié à l'étape suivante.
      Si une connexion n'est pas valide, un avertissement sera inscrit dans le journal et la prochaine connexion sera extraite du pool. Ce processus se poursuit jusqu'à ce qu'une connexion valide soit enfin trouvée. Si vous préférez ne pas faire défiler chaque connexion du pool, vous pouvez utiliser l'option <use-fast-fail>. Si on ne trouve pas de connexion valide dans le pool, une nouvelle connexion sera créée. Si la création de la connexion échoue, une exception sera retournée à l'application qui en a fait la demande.
      Ce paramètre entraîne une récupération plus rapide, mais crée une charge plus élevée sur la base de données. Cependant, c'est la sélection la plus sûre si une baisse de performance minimale n'est pas un sujet de préoccupation.
    • <background-validation>true</background-validation>

      Lorsque l'option < >background-validation a comme valeur true, il est utilisé en combinaison à la valeur <background-validation-millis> pour déterminer la fréquence d'exécution de l'information en d'arrière-plan. La valeur par défaut du paramètre <background-validation-millis> est de 0 millisecondes, ce qui signifie que c'est désactivé par défaut. Cette valeur ne doit pas être à la même valeur que celle du paramètre < idle-timeout-minutes >.
      Il est délicat de déterminer la valeur optimale de <background-validation-millis> pour un système particulier. Plus la valeur est faible, le plus fréquemment le pool sera validé et le plus rapidement les connexions plus tôt non valides sont supprimées de la piscine. Cependant, des valeurs les plus faibles prennent davantage de ressources de base de données. En outre, les valeurs élevées ont des contrôles de validation de connexion plus fréquents et utilisent moins de ressources de base de données, mais les liens morts demeurent indétectables pendant de plus longues périodes.

    Note

    Si l'option <validate-on-match> est définie à true, l'option <background-validation> devra être définie à false. Le contraire est vrai également. Si l'option <background-validation> est définie à true, l'option <validate-on-match> devra être définie à false.
  2. Choisir un mécanisme de validation

    Veuillez sélectionner un des mécanismes de validation suivants.
    • Spécifier un Nom de classe <valid-connection-checker>

      Il s'agit du mécanisme préféré car il est optimisé pour un RBMS particulier. JBoss EAP 6 fournit les vérificateurs de connexions suivants :
      • org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLReplicationValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.novendor.JDBC4ValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker
      • org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker
    • Indiqué l'énoncé SQL pour <check-valid-connection-sql>

      Vous fournissez l'énoncé SQL utilisé pour valider la connexion.
      Ce qui suit est un exemple qui vous montre comment spécifier un énoncé SQL pour valider une connexion dans Oracle :
      <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
      Dans MySQL ou PostgreSQL, vous pouvez spécifier l'énoncé SQL suivant :
      <check-valid-connection-sql>select 1</check-valid-connection-sql>
  3. Définir le Nom de classe <exception-sorter>

    Lorsqu'une exception est marquée comme étant fatale, la connexion est fermée immédiatement, même si la connexion participe à une transaction. Utilisez l'option de classe de triage d'exception trieuse pour détecter correctement et ensuite nettoyer les exceptions de connexion fatales. JBoss EAP 6 fournit les trieurs d'exception suivants :
    • org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter
    • org.jboss.jca.adapters.jdbc.extensions.informix.InformixExceptionSorter
    • org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter
    • org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter
    • org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter
    • org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter
    • org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter