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

Lorsque le gestionnaire de transactions du profil 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"... />

Vous ne devez pas changer la valeur de l'attribut id ou jndiName lorsqu'une récupération est en cours pour une transaction à laquelle la source de données a participé. En revanche, les éventuels changements apportés aux autres attributs de l'élément dataSource sont conservés pour la récupération. Cela vous permet, par exemple, d'ajouter un attribut recoveryAuthDataRef spécifiant un ID utilisateur et un mot de passe de base de données à utiliser pour la récupération.

L'ID utilisateur et le mot de passe de base de données à utiliser pour la récupération sont déterminés selon l'ordre de priorité suivant :
  1. Si un attribut recoveryAuthDataRef est défini pour l'élément dataSource, l'ID utilisateur et le mot de passe tirés de l'élément authData sont utilisés. Exemple :
    <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. Les ID utilisateur et mot de passe de l'élément dataSource sont utilisés. Exemple :
    <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 au sein même d'une application (annotation @DataSourceDefinition dans le code source de l'application ou élément <data-source> dans le descripteur de déploiement de l'application), veillez à ce que l'application associée soit en cours d'exécution au moment où a lieu 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

Dispositions pour les centres de documentation | Commentaires


Icône d'horodatage Dernière mise à jour: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=rwlp_ds_tx_recovery
Nom du fichier : rwlp_ds_tx_recovery.html