Cómo se recuperan las transacciones de bases de datos

Cuando el gestor de transacciones de Liberty recupera las transacciones de bases de datos dudosas, se utiliza el identificador exclusivo o el nombre JNDI para localizar el elemento dataSource actual, y luego determina el ID de usuario y la contraseña que se van a utilizar para la recuperación.

Para configurar un origen de datos se especifican los atributos del elemento dataSource en el archivo de configuración server.xml. Puede asignar un identificador exclusivo o un atributo jndiName para el origen de datos como se detalla a continuación:

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

No debe cambiar el valor del atributo id o jndiName cuando está pendiente una recuperación de una transacción en la que participaba el origen de datos. Si cambia cualquier otro atributo del elemento dataSource, estos cambios se retienen para la recuperación. Por lo tanto, puede por ejemplo, añadir un atributo recoveryAuthDataRef que especifica un ID de usuario y contraseña de base de datos que se van a utilizar para la recuperación.

El ID de usuario y contraseña de base de datos que se van a utilizar para la recuperación se determinan en el siguiente orden de prioridad:
  1. Si el elemento dataSource tiene definido el atributo recoveryAuthDataRef, se utilizan el ID de usuario y contraseña del elemento authData. Por ejemplo:
    <authData id="recoveryAuth" user="dbuser1" password="{xor}Oz0vKDtu"/>
    <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" 
                recoveryAuthDataRef="recoveryAuth" .../>
  2. Si se utiliza autenticación gestionada por contenedor, se utilizan el ID de usuario y contraseña del alias de autenticación gestionada por contenedor. Por ejemplo:
    • En el archivo ibm-web-bnd.xml, puede tener este código:
      <resource-ref name="jdbc/ds1ref" binding-name="jdbc/ds1">
          <authentication-alias name="user1Auth"/>
       </resource-ref>
    • En el archivo server.xml, debe definir este código:
      <authData id="user1Auth" user="dbuser1" password="{xor}Oz0vKDtu"/>
      <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" .../>
  3. Se utilizan el ID de usuario y contraseña del elemento dataSource. Por ejemplo:
    <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" ...>
         <properties.db2.jcc databaseName="testdb" user="dbuser1" password="{xor}Oz0vKDtu"/>
    </dataSource>
  4. Si no se cumple ninguna de las condiciones anteriores, y se ha intentado la recuperación sin ID de usuario y contraseña, el comportamiento viene determinado por el controlador JDBC y la base de datos.
Nota: Si el origen de datos definido por una aplicación realiza la recuperación de transacciones, como una anotación @DataSourceDefinition o un elemento <data-source> en el descriptor de despliegue, debe asegurarse de que la aplicación asociada se esté ejecutando cuando se produzca la recuperación. No puede utilizar valores de configuración del archivo server.xml para recuperar orígenes de datos definidos por la aplicación.

Icono que indica el tipo de tema Tema de referencia



Icono de indicación de fecha y hora Última actualización: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=rwlp_ds_tx_recovery
Nombre de archivo:rwlp_ds_tx_recovery.html