Comment sont récupérées les transactions de base de données

Lorsque le gestionnaire de transactions Liberty récupère les transactions de base de données en attente de validation, il utilise l'identifiant unique ou le nom JNDI pour localiser l'élément dataSource actuel, puis détermine l'ID utilisateur et mot de passe à utiliser pour la récupération.

Configurez une source de données en spécifiant les attributs de l'élément dataSource dans le fichier de configuration server.xml. Vous pouvez également lui affecter un identificateur unique ou un attribut jndiName comme ceci :

 <dataSource id="ds1" jndiName="jdbc/ds1"... />

You must not change the value of the id or jndiName attribute when a recovery is pending for a transaction in which the data source participated. If you change any other attributes of the dataSource element, those changes are retained for the recovery. Therefore, you can, for example, add a recoveryAuthDataRef attribute that specifies a database user ID and password to use for recovery.

The database user ID and password to use for recovery are determined according to the following order of precedence:
  1. If the dataSource element has the recoveryAuthDataRef attribute defined, then the user ID and password from the authData element are used. For example:
    <authData id="recoveryAuth" user="dbuser1" password="{xor}Oz0vKDtu"/>
    <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" 
                recoveryAuthDataRef="recoveryAuth" .../>
  2. Si l'authentification géré par conteneur est utilisée, les ID utilisateur et mot de passe de l'alias d'authentification géré par conteneur sont utilisés. Exemple :
    • Le fichier ibm-web-bnd.xml contient le code suivant :
      <resource-ref name="jdbc/ds1ref" binding-name="jdbc/ds1">
          <authentication-alias name="user1Auth"/>
       </resource-ref>
    • Dans le fichier server.xml, vous devez définir le code suivant :
      <authData id="user1Auth" user="dbuser1" password="{xor}Oz0vKDtu"/>
      <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" .../>
  3. The user ID and password from the dataSource element are used. For example:
    <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" ...>
         <properties.db2.jcc databaseName="testdb" user="dbuser1" password="{xor}Oz0vKDtu"/>
    </dataSource>
  4. Si aucune des informations précédentes n'est disponible et si la récupération est tentée sans ID utilisateur ni mot de passe, le comportement est déterminé par le pilote JDBC et la base de données.
Remarque : Si la récupération d'une transaction est effectuée par une source de données définie par l'application, par exemple via une annotation @DataSourceDefinition ou un élément <data-source> dans le descripteur de déploiement, vous devez vous assurer que l'application est en opération au moment de la récupération. Vous ne pouvez pas utiliser les paramètres de configuration dans le fichier server.xml pour récupérer les sources de données définies par l'application.

Icône indiquant le type de rubrique Rubrique de référence

Nom du fichier : rwlp_ds_tx_recovery.html