TIBCO EBX®
Documentation > Manuel de référence > Persistance
Mode navigationDocumentation > Manuel de référence > Persistance

Réplication

Présentation

Les données stockées dans le référentiel de TIBCO EBX® peuvent être copiées en miroir dans des tables relationnelles dédiées afin d'offrir un accès direct aux données via des requêtes et des vues SQL.

Tout comme l'historique et le mode relationnel, cette réplication des données est transparente pour l'utilisateur final et pour les applications clientes. Certaines actions provoquent des modifications automatiques des répliques dans la base de données : 

Note

table répliquée : désigne une table de données de référence qui a fait l'objet d'une réplication

table de réplique (ou réplique) : désigne une table en base de données qui est la cible de la réplication

Configuration de la réplication

Activer la réplication

Pour définir une unité de réplication sur un modèle de données, utiliser l'élément osd:replication sous les éléments annotation/appinfo. Chaque unité de réplication désigne des tables dans un jeu de données unique dans un espace de données spécifique.

Les éléments imbriqués sont les suivants :

Élément

Description

Requis

name

Nom de l'unité de réplication. Ce nom identifie l'unité de réplication dans le modèle de données. Ce nom doit être unique.

Oui

dataSpace

Indique l'espace de données concerné par la réplication. Cet espace de données ne peut ni être une version ni être relationnel.

Oui

dataSet

Indique le jeu de données concerné par la réplication.

Oui

refresh

Spécifie la politique de synchronisation des données. Les politiques disponibles sont :

  • onCommit: Dans la base de données, le contenu de la réplique est toujours à jour par rapport à sa table source. Chaque transaction qui met à jour la table source d'EBX® déclenche les insertions, mises à jour et suppressions correspondantes sur la réplique.

  • onDemand : La réplication des tables spécifiées n'est effectuée que lorsqu'une opération d'actualisation explicite est réalisée. Voir Requête d'actualisation des réplications 'onDemand'.

Oui

table/path

Indique le chemin de la table dans le modèle de données qui doit être répliquée dans la base de données.

Oui

table/nameInDatabase

Indique le nom de la table dans la base de données qui contiendra les données répliquées. Ce nom doit être unique par rapport à toutes les unités de réplication.

Oui

table/element/path

Indique le chemin de la liste agrégée dans la table qui doit être répliquée dans la base de données.

Oui

table/element/nameInDatabase

Indique le nom de la table dans la base de données qui contiendra les données répliquées de la liste agrégée. Ce nom doit être unique par rapport à toutes les unités de réplication.

Oui

Par exemple :

<xs:schema>
    <xs:annotation>
        <xs:appinfo>
            <osd:replication>
                <name>ProductRef</name>
                <dataSpace>ProductReference</dataSpace>
                <dataSet>productCatalog</dataSet>
                <refresh>onCommit</refresh>
                <table>
                    <path>/root/domain1/tableA</path>
                    <nameInDatabase>PRODUCT_REF_A</nameInDatabase>
                </table>
                <table>
                    <path>/root/domain1/tableB</path>
                    <nameInDatabase>PRODUCT_REF_B</nameInDatabase>
                    <element>
                        <path>/retailers</path>
                        <nameInDatabase>PRODUCT_REF_B_RETAILERS</nameInDatabase>
                    </element>
                </table>
            </osd:replication>
        </xs:appinfo>
    </xs:annotation>
    ...
</xs:schema>

Remarques :

Désactiver la réplication pour un champ ou un groupe donné

Le comportement par défaut d'une table répliquée est la copie de tous ses éléments pris en charge (voir Restrictions du modèle de données pour les tables répliquées).

Il est possible de désactiver la réplication pour un champ ou un groupe spécifique, soit grâce à l'assistant de modèle de données, soit en modifiant le modèle de données sous-jacent.

Pour désactiver la réplication d'un champ ou d'un groupe en modifiant le modèle de données, utiliser l'élément osd:replication avec l'attribut disable="true".

<xs:element name="longDescription" type="xs:string">
    <xs:annotation>
        <xs:appinfo>
            <osd:replication disable="true" />
        </xs:appinfo>
    </xs:annotation>
</xs:element>

Pour désactiver la réplication d'un champ ou d'un groupe à l'aide de l'assistant du modèle de données, utiliser la propriété Replication des Advanced properties de l'élément.

Lorsque cette propriété est définie sur un groupe, la réplication est désactivée récursivement pour tous ses descendants. Une fois que la réplication a été désactivée sur un groupe, il n'est pas possible de la ré-activer sur un descendant.

Note

Si la table contenant le champ ou le groupe n'est pas répliquée, cette propriété n'aura aucun effet.

Il n'est pas possible de désactiver la réplication pour les champs de clé primaire.

Accéder à une table répliquée à l'aide de SQL

Cette section décrit comment accéder directement à une réplique en utilisant SQL.

Trouver la réplique dans la base de données

Pour chaque table de réplique d'EBX®, une table correspondante est générée dans le SGBDR. Grâce à l'interface utilisateur d'EBX®, il est possible de trouver le nom de cette table de base de données en cliquant sur le panneau de documentation de la table.

Restrictions d'accès

L'accès direct aux répliques en base de données n'est autorisé qu'en mode lecture-seule. Il est de la responsabilité de l'administrateur de la base de données de bloquer l'accès en écriture à tous les utilisateurs de la base de données à l'exception de celui utilisé par EBX®.

Lectures SQL

Les lectures directes en SQL sont possibles sur des transactions bien encadrées et de préférence de courte durée. Toutefois, pour de tels accès, les permissions d'EBX® ne sont pas prises en compte. Par conséquent, les applications ayant le droit d'effectuer des lectures doivent être sécurisées par le biais de permissions et de processus d'authentification tiers.

Requête d'actualisation des réplications 'onDemand'

La politique d'actualisation 'onDemand' nécessite une requête explicite pour actualiser les données de la table répliquée.

Il y a plusieurs moyens pour demander une actualisation de réplication :

Impact et limitations de la réplication

La fonctionnalité de réplication a certains impacts et des limitations connues, listés ci-dessous. En cas d'utilisation de la réplication, il est fortement conseillé de lire attentivement ces limitations et de contacter le support de Cloud Software Group, Inc. pour toute question.

Voir Supported databases pour les bases de données qui prennent en charge la réplication.

Validation

Certaines contraintes de modèle de données d'EBX® deviennent bloquantes lorsque la réplication est activée. Pour plus d'informations, voir Contraintes structurelles.

Restrictions du modèle de données pour les tables répliquées

Certaines restrictions s'appliquent aux modèles de données contenant des tables répliquées :

Les évolutions du modèle de données peuvent aussi être limitées par le SGBDR sous-jacent, en fonction des données déjà contenues dans les tables concernées.

Configuration de la base de données

L'opération d'actualisation est optimisée pour transmettre uniquement les lignes de la table source qui ont été modifiées (création et suppression) depuis la dernière actualisation. Toutefois, en fonction du volume de données échangées, cette opération peut se révéler volumineuse et nécessiter des transactions importantes. En particulier, la première opération d'actualisation peut concerner un grand nombre de lignes. Il est nécessaire que la base de données soit configurée correctement afin de permettre l'exécution de ces transactions de manière optimale.

Par exemple, avec Oracle :

Distributed data delivery (D3)

La réplication est disponible sur le master D3 ainsi que sur les espaces de données de livraison esclaves. Sur le master, le comportement de réplication est le même que dans un espace de données sémantique standard, mais sur les esclaves, le contenu répliqué est celui de la dernière image diffusée.

Dans un espace de données de livraison esclave, certaines restrictions s'appliquent :

Voir aussi

Autres limitations de la réplication

Documentation > Manuel de référence > Persistance