Accéder au contenu principal Passer au contenu complémentaire

Configurer le CDC en mode journal AS/400

Les étapes de configuration suivantes ne sont à mettre en place qu'une seule fois pour un scénario éditeur/souscripteur donné.

Étape 1 : Définir l'éditeur en mode journal AS/400

About this task

Pour définir l'éditeur, vous devez :

Procedure

  1. Créer un Job dans Studio Talend.
  2. Définir une connexion à la base de données dédiée au CDC en renseignant les informations de connexion à cette base de données. Par exemple, une connexion nommée AS400_CDC.
  3. Définir une connexion à la base de données dans laquelle les données sont stockées en renseignant les informations de connexion à cette base de données. Par exemple, une connexion nommée AS400_DATA.

Results

Exemple de deux connexions dans le nœud Metadata (Métadonnées).

Étape 2 : Identifier la table source en mode journal AS/400

Pour identifier la ou les table(s) à surveiller, cliquez-droit sur la connexion de la base de données à monitorer pour récupérer le schéma de la table source et charger ce dernier dans le Repository. Dans cet exemple, la connexion de la base de données est AS400_DATA.

Exemple de schéma de la table "customers".

Étape 3 : Créer une table souscripteur en mode journal AS/400

About this task

Pour définir la connexion entre le CDC et les données :

Procedure

  1. Cliquez-droit sur le dossier CDC Foundation de la connexion de la base à monitorer et sélectionnez Create CDC dans le menu contextuel pour ouvrir la boîte de dialogue Create Change Data Capture. Dans cet exemple, la connexion de la base de données est AS400_DATA.
    Menu contextuel du nœud CDC Foundation (Fondation CDC).
  2. Dans la boîte de dialogue Create Change Data Capture (Créer le Change Data Capture), cliquez sur le bouton [...] du champ Set Link Connection (Paramétrer le lien de connexion) pour sélectionner la connexion à la base de données dédiée au CDC. Dans cet exemple, sélectionnez AS400_CDC.
  3. Cliquez sur Create Subscriber pour créer les souscripteurs. La commande à exécuter s'affiche.
    En général, la commande se présente comme suit :
    open <AS400_server_host>
                         user <Username> <Password>
                         quote rcmd "crtsavf qgpl/instfitcdc"
                         quote rcmd "clrsavf qgpl/instfitcdc"
                         bin
                         cd qgpl
                         put "<Studio_install>\plugins\org.talend.designer.cdc_<version>\resource\fitcdc.savf" instfitcdc
                         quote rcmd "rstlib savlib(fitcdc) dev(*savf) savf(qgpl/instfitcdc) RSTLIB(<CDC_library_name>)"
                         quote rcmd "CHGCMD CMD(<CDC_library_name>/RUNCDC) PGM(<CDC_library_name>/F2CD00) CURLIB(<CDC_library_name>)"
                         quote rcmd "dltf qgpl/instfitcdc"
                         quit  

    Elle est automatiquement exécutée via FTP par le Studio Talend afin d'installer le programme RUNCDC, de restaurer la bibliothèque CDC (la base de données CDC) et de créer la table TSUBSCRIBERS, fournissant des informations concernant toutes les tables où le CDC a été configuré.

    La bibliothèque CDC par défaut contient les tables suivantes :

    • FITAB : contient les informations relatives aux dernières exécutions et aux récepteurs utilisés dans le champ TBDT1.
      • position 1-10 : bibliothèque du dernier récepteur de l'exécution précédente
      • position 11-20 : nom du dernier récepteur de l'exécution précédente
      • position 21-40 : horodatage le plus récent du processus
      • position 41-50 : bibliothèque du dernier récepteur de l'exécution courante
      • position 51-60 : nom du dernier récepteur de l'exécution actuelle
    • FICLH : contient les logs d'exécution de la commande RUNCDC ainsi que les récepteurs utilisés.
    • FICLF : contient les logs techniques concernant les fichiers utilisés.

    Les deux tables FITAB et FICLH fournissent des informations concernant les récepteurs déjà utilisés par le programme RUNCDC et peuvent permettre de nettoyer les récepteurs au besoin.

    Si vous extrayez souvent les données de changement, vous pouvez être confronté·e à un dépassement du champ NUM_ORD dans la table FITAB lorsque sa valeur atteint 9999999. Si cela survient, ou avant que cela survienne, vous pouvez réinitialiser sa valeur en exécutant la commande Change F2CD65 NUM_ORD in FITAB to 0 (zero) puis supprimer tous les enregistrements dans les tables FICLH, FICLF, FITMP et FIRCV.

    S'il y a des problèmes relatifs à la table FITAB après un redémarrage de votre système AS/400, il est possible que vous deviez réinitialiser la valeur du champ NUM_ORD.

  4. Si vous souhaitez exécuter manuellement la commande, copiez-la et cliquez sur Skip afin de fermer cette boîte de dialogue. Ainsi, la commande n'est pas exécutée par le Studio Talend et vous devez la coller, voire la modifier et l'exécuter dans votre système AS/400.
    Sinon, cliquez sur Execute afin d'exécuter directement la commande par défaut dans le Studio Talend. Une liste d'exécution étape par étape s'affiche.
    Notez que, dans la liste, vous pouvez voir une erreur ayant pour numéro 550 et décrivant des problèmes tels que le fait que tous les objets n'ont pas été restaurés. Ceci peut-être normal si la bibliothèque qui n'a pas été restaurée l'a été dans votre système AS/400. Contactez l'administrateur de votre système AS/400 pour plus de détails.
  5. Dans la boîte de dialogue Create Change Data Capture, cliquez sur Finish.
    Dans le dossier CDC Foundation, la connexion à la base de données CDC et le schéma de la table des souscripteurs s'affichent.

Étape 4 : Finaliser la souscription en mode journal AS/400

About this task

Vous devez préciser à quelle table le souscripteur veut souscrire, puis activer son inscription.

Procedure

  1. Cliquez-droit sur le schéma correspondant à la table source et sélectionnez Add CDC. La boîte de dialogue Create Subscriber and Execute SQL Script s'affiche. Le nom long et le nom court de la table source s'affichent tous les deux dans cette boîte de dialogue.
    Note InformationsWarning: La table source à monitorer doit comporter une clé primaire afin que le système CDC puisse identifier sur quelle ligne les changements ont eu lieu. Vous ne pourrez pas mettre en place l'environnement CDC si le schéma de votre table source ne contient aucune clé primaire.
    Dans cet exemple, comme le nom long CUSTOMERS ne fait pas plus de 10 caractères, le nom court est identique au nom long.
  2. Dans le champ Subscriber Name, saisissez le nom que vous souhaitez donner au souscripteur. Par défaut, le souscripteur est nommé APP1.
  3. Cliquez sur Execute puis sur Close.
    Dans le dossier CDC Foundation, les schémas de la table des changements et de la vue associée s'affichent. Un nouvel enregistrement est ajouté à la table TSUBSCRIBERS.
  4. Depuis votre système AS/400 :
    1. Créez un nouveau destinataire:
      CRTJRNRCV JRNRCV(<source_library_name>/<receiver_name>)
    2. Créez un nouveau journal et joignez le destinataire créé dans l'étape précédente:
      CRTJRN JRN(<source_library_name>/<journal_name>) JRNRCV(<source_library_name>/<receiver_name>)
    3. Pour le fichier à monitorer, commencer à enregistrer les modifications dans le journal créé dans l'étape précédente:
      STRJRNPF FILE(<source_library_name>/<file_to_be_monitored>) JRN(<source_library_name>/<journal_name>) IMAGES(*BOTH)
    Si le numéro de séquence du récepteur du journal atteint sa valeur maximale plus tard, vous pouvez augmenter la taille du récepteur en exécutant la commande CHGJRN JRN(<Journal_name>) JRNRCV(*GEN) RCVSIZOPT(*MAXOPT3) sur votre système AS/400. Pour plus d'informations, consultez Change Journal (CHGJRN) (en anglais).
  5. Pour voir les changements apportés aux données, cliquez-droit sur la table correspondante dans le dossier Table schemas et sélectionnez View All Changes pour ouvrir la boîte de dialogue correspondante.
    Vue d'ensemble de la boîte de dialogue View All Changes (Voir tous les changements).
  6. Cliquez sur Finish pour fermer la boîte de dialogue.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.