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

Vous pouvez choisir de stocker vos journaux de transaction de profil Liberty dans une base de données relationnelle plutôt qu'en fichiers du système d'exploitation. Dans le profil complet WebSphere Application Server, cette fonction fournit une prise en charge de haute disponibilité (HA) sans avoir à utiliser de système de fichiers partagé. La fonction est fournie dans le profil Liberty à des fins de compatibilité, d'évaluation et de test.

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 écrites dans les journaux de transaction lors de la phase de préparation d'une transaction répartie ; ainsi, lorsqu'un serveur d'applications WebSphere avec des transactions actives redémarre après un incident, le service de transaction peut utiliser les journaux pour réexécuter les transactions en attente de validation. 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 qui travaillent dans un environnement à haute disponibilité (HA). Dans les versions précédentes de WebSphere Application Server, la prise en charge des transactions haute disponibilité nécessitait l'utilisation d'un système de fichiers partagé pour héberger les journaux de transaction, par exemple un réseau de stockage d'entreprise monté NFSv4 ou un réseau d'unités de stockage. 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 au système de fichiers partagé, une base de données de ce type en tant que référentiel partagé pour les journaux de transaction.

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

Procédure

Pour configurer les journaux de transaction du profil 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 du profil Liberty.
    L'exemple suivant extrait du fichier server.xml illustre la manière dont configurer le profil Liberty pour stocker ses journaux de transaction dans une base de données DB2 :
    <transaction> 
      <dataSource jndiName="jdbc/tranlogDataSource" 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.

    Le profil Liberty tente de créer les tables de base de données nécessaires au premier démarrage du serveur. Lorsque cela n'est pas possible, par exemple parce que l'autorisation est insuffisante, le serveur ne démarre pas. Dans ces circonstances, vous devez créer les deux tables de bases de données requises 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) 
    La structures DDL suivante montre comment créer les tables de base de données dans 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

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=twlp_store_logs_in_rdb
Nom du fichier : twlp_store_logs_in_rdb.html