0 / 0
Retourner à la version anglaise de la documentation

Etape Distributed Transaction dans DataStage

Dernière mise à jour : 12 mars 2025
Etape Distributed Transaction dans DataStage

Utilisez l'étape Transaction distribuée pour exécuter des transactions couvrant plusieurs sources de données, gérées par IBM® MQ ou Apache Kafka. Vous pouvez utiliser IBM Db2 pour DataStage, Oracle Database pour DataStage, ODBC, IBM MQ, ou Teradata comme connecteurs d'entrée.

Présentation

Une transaction est une série d'actions qui sont exécutées en une seule opération. Une transaction se termine par une action de validation qui rend les modifications permanentes. Si l'une des modifications ne peut pas être validée, la transaction annule toutes les modifications.

Une transaction répartie est une transaction qui peut couvrir plusieurs sources de données, telles qu'une ou plusieurs bases de données, et un gestionnaire de transactions, tel qu'une file d'attente de messages IBM MQ . Pour que la validation de la transaction aboutisse, toutes les sources de données individuelles doivent être validées. Si une ressource ne peut pas être validée, la totalité de la transaction est annulée. Par exemple, une transaction répartie peut consister en un transfert d'argent entre deux comptes bancaires qui se trouvent dans des bases de données différentes. La transaction n'est validée que si le retrait d'un compte et le dépôt sur l'autre compte sont effectués avec succès.

L'étape Distributed Transaction suit la norme X/Open, qui utilise un modèle de traitement composé des composants suivants:
  • Un programme d'application qui définit les limites de transaction et spécifie les actions qui constituent une transaction
  • Les gestionnaires de ressources, tels que les bases de données ou les systèmes de fichiers qui fournissent un accès aux sources de données partagées
  • Un gestionnaire de transactions qui affecte des identificateurs aux transactions, surveille leur progression et gère l'exécution des transactions et la reprise après incident
Les gestionnaires de ressources pris en charge incluent IBM Db2 for DataStage et Oracle Database for DataStage. Les gestionnaires de transactions pris en charge incluent IBM MQ et Apache Kafka.

Dans un exemple de conception classique pour un flux de transactions réparti, un connecteur IBM MQ consomme les messages source d'une file d'attente de messages et les déplace vers une file d'attente de travaux persistante. Le connecteur copie les données, l'ID de message et les autres zones d'en-tête de message de la source vers le message cible. Le connecteur envoie également les données de message à un lien de sortie. Une ou plusieurs étapes traitent les données de message et les données supplémentaires d'un connecteur Oracle Database for DataStage et envoient les données traitées à l'étape Distributed Transaction via un ou plusieurs liens. Chaque lien d'entrée vers l'étape représente la sortie vers une base de données cible. Les liens fournissent l'ID du message source d'origine, qui est consommé à partir de la file d'attente de travaux dans le cadre de la transaction répartie.

Onglet Entrée

Configurez les propriétés de connecteur pour chaque lien d'entrée. Sélectionnez une source de données et spécifiez les propriétés de connexion associées. Sélectionnez la méthode d'écriture que vous utilisez pour écrire des données sur une cible et spécifiez les propriétés requises par cette méthode d'écriture et cette cible.

Onglet Étape

Indiquez un gestionnaire de transactions et une connexion. Indiquez si vous souhaitez activer les transactions globales et la messagerie IBM MQ . Indiquez une file d'attente de travaux dans laquelle les messages doivent être déplacés. Vous pouvez choisir de rejeter les unités défaillantes, ce qui annule les transactions qui incluent les enregistrements ayant échoué. Vous pouvez spécifier une file d'attente de rejet pour stocker les enregistrements ayant échoué et définir d'autres propriétés de rejet. Vous pouvez spécifier l'ordre dans lequel traiter les liens d'entrée. Vous pouvez également configurer l'ordre des enregistrements pour contrôler l'ordre de traitement des enregistrements, quel que soit le lien sur lequel se trouvent les enregistrements.