Stockage de journaux de transaction dans une base de données relationnelle

Vous pouvez choisir de stocker vos journaux de transaction Liberty dans une base de données relationnelle plutôt que sous forme de fichiers du système d'exploitation. Dans la version traditionnelle de WebSphere Application Server, cette fonction fournit une prise en charge de haute disponibilité (HA) sans avoir à utiliser de système de fichiers partagé.

Pourquoi et quand exécuter cette tâche

Le service de transaction WebSphere Application Server transaction service écrit des informations dans le journal des transactions pour chaque transaction globale qui implique deux ressources ou plus, ou qui est répartie sur plusieurs serveurs. Ces transactions sont lancées ou arrêtées par leurs applications ou par le conteneur dans lequel elles sont déployées. Afin d'assurer l'intégrité des journaux, ces derniers sont gérés par le service de transaction. Les informations sont consignées dans les journaux des transactions lors de la phase de préparation d'une transaction répartie, de sorte que si un serveur WebSphere Application Server avec des transactions actives redémarre après une défaillance, le service de transaction peut utiliser les journaux pour relecture des transactions dont le statut est équivoque. Ceci permet de remettre le système dans un état cohérent.

Dans les versions précédentes de WebSphere Application Server, les journaux de transaction étaient stockés sous forme de fichiers de système d'exploitation. Dans WebSphere Application Server Version 8.5.5 et ultérieures, cela reste la configuration par défaut, mais vous pouvez choisir de stocker les journaux de transaction dans un système de gestion de base de données relationnel (RDBMS - SGBD relationnel). Cette option de configuration est destinée aux utilisateurs opérant dans un environnement à haute disponibilité (HA). Dans les versions précédentes de WebSphere Application Server, la prise en charge de transactions haute disponibilité nécessitait d'utiliser un système de fichiers partagé pour héberger les journaux de transactions, comme un stockage en réseau NAS ou SAN monté sur NFSv4. Cette nouvelle fonction permet aux clients, et particulièrement à ceux ayant investi dans la technologie de base de données à haute disponibilité, d'utiliser, comme alternative à un système de fichiers partagé, leur base de données à haute disponibilité en tant que référentiel partagé pour les journaux de transaction.

Par défaut, les journaux de transactions Liberty sont stockés dans les fichiers du système d'exploitation. Toutefois, pour la compatibilité avec la version traditionnelle de WebSphere Application Server et à des fins d'évaluation et de test, vous pouvez configurer les journaux de transaction de manière à les stocker dans un SGBD relationnel. Vous pouvez utiliser tout type de base de données pris en charge par Liberty.

Procédure

Pour configurer les journaux de transaction Liberty de sorte qu'ils soient stockées dans un SGBD relationnel, procédez comme suit :

  1. Configurez une source de données non transactionnelle, dédiée, dans le fichier server.xml Liberty.
    L'exemple suivant extrait du fichier server.xml illustre la manière de configurer Liberty pour stocker ses journaux de transaction dans une base de données DB2 :
    <transaction> 
      <dataSource transactional="false">
        <jdbcDriver libraryRef="DB2JCC4LIB"/>
        <properties.db2.jcc currentSchema="CBIVP"
          databaseName="SAMPLE" driverType="4"
          portNumber="50000" serverName="localhost" 
          user="db2admin" password="{xor}Oz1tPjsyNjE=" />
      </dataSource> 
    </transaction> 
    
    <library id="DB2JCC4LIB">
      <fileset dir="C:/SQLLIB/java" includes="db2jcc4.jar db2jcc_license_cu.jar"/>
    </library>
  2. (Facultatif) Créez les tables de base de données.

    Liberty tente de créer les tables de base de données nécessaires au premier démarrage du serveur. S'il n'est pas possible de les créer, par exemple en raison d'autorisations insuffisantes, le démarrage du serveur échoue. Dans ces circonstances, vous devez créer les deux tables de bases de données manuellement.

    Les structures DDL suivantes présentent comment créer les tables dans DB2 :
    CREATE TABLE WAS_TRAN_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID BIGINT,
      RUSECTION_ID BIGINT,
      RUSECTION_DATA_INDEX SMALLINT,
      DATA LONG VARCHAR FOR BIT DATA) 
    CREATE TABLE WAS_PARTNER_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID BIGINT,
      RUSECTION_ID BIGINT,
      RUSECTION_DATA_INDEX SMALLINT,
      DATA LONG VARCHAR FOR BIT DATA) 
    Les structures DDL suivantes illustrent la création de la table de base de données sous Oracle :
    CREATE TABLE WAS_TRAN_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID NUMBER(19),
      RUSECTION_ID NUMBER(19),
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)
    CREATE TABLE WAS_PARTNER_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID NUMBER(19),
      RUSECTION_ID NUMBER(19),
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_store_logs_in_rdb.html