Utilitaires utilisés pour l'hébergement multiclient.

Cet article contient les rubriques suivantes :
casm173
Cet article contient les rubriques suivantes :
Cette section décrit les utilitaires qui sont utilisés pour gérer un environnement d'hébergement multiclient.
Remarque :
Les paramètres obligatoires sont entourés par "{ }" et les paramètres facultatifs par "[ ]".
pdm_buildtenant
: création de clients hébergés à partir d'un autre objet
L'utilitaire
pdm_buildtenant
est utilisé pour créer des clients hébergés depuis un autre objet. Vous avez peut-être utilisé des partitions de données et un autre objet CA SDM pour obtenir la fonctionnalité désormais fournie par l'hébergement multiclient. Si vous souhaitez convertir une implémentation en hébergement multiclient, la première étape est d'utiliser pdm_buildtenant pour mapper les données de l'objet utilisé auparavant vers le nouvel objet de client hébergé.
Avant que vous exécutiez pdm_buildtenant, vous
devez
configurer le fournisseur de services.
Dans cette section, l'objet utilisé pour recevoir les informations de type client hébergé est appelé objet de pré-client hébergé. Pour la plupart des sites ayant ces exigences, l'objet org (organisation) est l'objet pré-client hébergé, mais l'approche suivante peut être utilisée pour tout objet pré-client hébergé.
L'utilitaire pdm_buildtenant crée les objets de client hébergé à partir des objets pré-client hébergé. L'application crée un nouveau client hébergé pour chaque objet pré-client hébergé et définit l'attribut du client hébergé dans l'objet pré-client hébergé pour référencer le nouveau client hébergé. L'utilitaire a la syntaxe suivante :
pdm_buildtenant [-h] | [-f [configuration_file]
  • -f configuration_file
    (Facultatif) Spécifie l'emplacement d'un fichier de configuration spécifiant les règles de création de clients hébergés à partir de l'objet pré-client hébergé. Si cet argument n'est pas inclus, pdm_buildtenant utilise le fichier de configuration du répertoire $NX_ROOT/site/cfg. Ce fichier suppose que l'objet de pré-client hébergé est org ; si ce n'est pas le cas, vous
    devez
    modifier le fichier de configuration avant d'utiliser pdm_buildtenant.
    Vous
    devez
    copier buildtenant.xml dans le répertoire $NX_ROOT/site/cfg. De plus, buildtenant.xsd doit être dans le même répertoire que buildtenant.xml, ou vous recevrez un message d'erreur. Lorsque vous installez le produit, buildtenant.xsd est situé dans $NX_ROOT/site/cfg, donc vous n'avez pas à copier ce fichier.
  • -h
    Affiche les informations d'utilisation pour pdm_buildtenant.
Le format suivant est le format du fichier de configuration.
<?xml version="1.0" encoding="utf-8" ?> <BuildTenant> <Object from="MajicObjectName"> <Attribute from="sourceAttribute1" to="tenantAttribute1" /> <Attribute from="sourceAttribute2" to="tenantAttribute2" /> </Object> </BuildTenant>
L'attribut
from
de la balise d'objet identifie l'objet de pré-client hébergé. Chaque balise Attribute identifie un attribut qui doit être copié depuis l'objet pré-client hébergé vers un attribut du nouveau client hébergé.
Pour des implémentations de l'hébergement multiclient sous UNIX, vous
devez
exécuter pdm_task pour exporter LIBPATH avant d'exécuter les utilitaires pdm_settenant et pdm_buildtenant. Si vous n'exécutez pas pdm_task avant d'exécuter ces utilitaires, vous recevrez des messages d'erreurs système. Utilisez ../pdm_task pour exécuter la commande.
pdm_clean_attachments : suppression des pièces jointes redondantes après l'importation des données de client hébergé
Après l'importation des données de client hébergé, vous devez supprimer les pièces jointes redondantes. L'utilitaire a la syntaxe suivante :
pdm_perl pdm_clean_attachments.pl [-h] | [-n repository_name] | [-S|-K]
  • -h
    Spécifie d'afficher l'aide de ligne de commande.
  • -n
    repository_name
    Spécifie le nom de la version du référentiel à traiter S'il n'est pas spécifié, tous les référentiels sont traités.
  • -S
    Indique que seuls les référentiels de CA SDM sont traités.
  • -K
    Indique que seuls les référentiels de CA SDM et les référentiels avec images incorporées sont traités.
L'exécution de la commande pdm_clean_attachments.pl sans arguments traite tous les référentiels.
Sous UNIX, la variable LIBPATH doit être définie avant d'exécuter plusieurs utilitaires CA SDM. Utilisez l'utilitaire
pdm_task
pour définir la variable LIBPATH avant d'exécuter un utilitaire. Par exemple, entrez "pdm_task pdm_clean_attachments ...".
pdm_settenant : affectation de clients hébergés aux objets
Après avoir défini des clients hébergés, vous devez utiliser l'utilitaire
pdm_settenant
(affectation de clients hébergés aux objets) pour définir la colonne de client hébergé dans les autres objets. L'utilitaire a la syntaxe suivante :
pdm_settentant [-h] | {-f [configuration_file] | -r} [-d domsrvr]
  • -d domsrvr
    (Facultatif) Spécifie un domsrvr à utiliser. Si cet argument n'est pas spécifié, pdm_settenant utilise le domsrvr par défaut.
  • -f
    configuration_file
    (Facultatif) Indique l'emplacement d'un fichier de configuration spécifiant les données qui seront mises à jour et les règles de mise à jour du fichier. Si cet argument n'est pas spécifié, pdm_settenant utilise le fichier de configuration du répertoire $NX_ROOT/site/cfg (une fois que le fichier de configuration est copié dans le dossier $NX_ROOT/site/cfg).
    Remarque :
    Vous pouvez modifier l'exemple de fichier settenant.xml ou créer un fichier et le copier dans le répertoire $NX_ROOT/site/cfg. De plus, settenant.xsd doit être dans le même répertoire que settenant.xml, ou vous recevrez un message d'erreur. Lorsque vous installez le produit, settenant.xsd est situé dans $NX_ROOT/site/cfg, donc vous n'avez pas à copier ce fichier.
L'exemple de code XML suivant décrit le format de ce fichier :
<?xml version="1.0" encoding="utf-8" ?> <SetTenant> <Object name="MajicObjectName"> <TenantRule type="SREL">MajicColumName</TenantRule> <Where>tenant is null</Where> </Object> <Object name="MajicObjectName"> <TenantRule type="Name">TenantName</TenantRule> <Where>tenant is null</Where> </Object> </SetTenant>
Chaque balise object spécifie un objet CA SDM à définir comme client hébergé. La balise TenantRule spécifie comment pdm_settenant doit déterminer le client hébergé, et la balise Where sélectionne les objets devant devenir clients hébergés. Il existe deux types de balises TenantRule :
  • type="Name"
    Spécifie un client hébergé explicite par nom.
  • type="SREL"
    Spécifie un attribut SREL dans l'objet. Pdm_settenant copie le client hébergé de l'objet référencé par SREL.
  • -h
    Affiche les informations d'utilisation de pdm_settenant.
  • -r
    Sort un rapport affichant le nombre total de lignes dans chaque table qui requiert un client hébergé et le nombre de lignes ayant une colonne de client hébergé nulle.
Si les deux arguments -f et -r sont spécifiés, pdm_settenant sort un rapport après avoir terminé sa mise à jour. Si vous spécifiez uniquement l'argument -r, pdm_settenant sort un rapport, mais n'actualise aucune donnée.
L'exécution de pdm_settenant sans aucun argument affiche les informations d'utilisation. Pour exécuter pdm_settenant à l'aide du fichier de configuration par défaut, spécifiez l'option -f sans l'argument configuration_file. L'utilitaire pdm_settenant lit son fichier de configuration et traite chaque règle qu'il définit l'une après l'autre. Il écrit la sortie dans le fichier pdm_settenant.log dans le répertoire $NX_ROOT/log.
Vous pouvez exécuter pdm_settenant autant de fois que nécessaire. La première exécution peut prendre un certain temps (jusqu'à plusieurs heures pour un grand site). Les exécutions suivantes sont plus rapides car elles traitent uniquement les lignes qui n'ont pas été mises à jour. Ceci prépare la base de données avant l'installation de l'option d'hébergement multiclient.
Avec des implémentations de l'hébergement multiclient sous UNIX, vous devez exécuter pdm_task pour exporter LIBPATH avant d'exécuter les utilitaires pdm_settenant et pdm_buildtenant. Si vous n'exécutez pas pdm_task avant d'exécuter ces utilitaires, vous recevrez des messages d'erreurs système. Utilisez ../pdm_task pour exécuter la commande.
Considérations d'affectation des clients hébergés aux objets
Après avoir défini des clients hébergés, vous devez utiliser l'utilitaire pdm_settenant (affectation de clients hébergés aux objets) pour définir la colonne Client hébergé dans les autres objets. Lorsque vous changez le client hébergé pour un objet, vous devez considérer la possibilité de changer l'hébergement sur les objets avec client hébergé associés afin de maintenir l'intégrité des données. La non-synchronisation de ces objets peut provoquer l'absence de données de CI, relations, DRG, version, etc. Les objets CA CMDB suivants ont un client hébergé :
  • nr : définitions d'éléments de configuration
  • nr_com : entrées de journal associées à un CI
  • bmhier : relations associées aux CI
  • mdr_idmap : définitions de fournisseur de RDG
  • ci_mdr_idmap : mappages fédérés CI/RDG
Pour chaque CI, effectuez les opérations suivantes pour synchroniser les données lorsque vous utilisez pdm_settenant pour changer l'hébergement :
  • Spécifiez nr comme nom de l'objet de CI.
  • Modifiez les entrées de journal associées au CI dans nr_com pour que vous puissiez afficher les entrées de journal pour le nouveau client hébergé.
Exemple : XML pour modifier le client hébergé et le journal
Le XML suivant modifie le client hébergé pour un CI nommé CITest dans T2 et modifie également les entrées de journal correspondantes dans nr_com :
<Object name="nr"> <TenantRule type="Name">T2</TenantRule> <Where>name = 'CITest'</Where> </Object> <Object name="nr_com"> <TenantRule type="Name">T2</TenantRule> <Where>asset_id.name = 'CITest'</Where> </Object>
pdm_tenant_delete : suppression de données de client hébergé dans une base de données
L'utilitaire
pdm_tenant_delete
supprime toutes les données pour un client hébergé spécifié de la base de données.
Les contraintes référentielles de ca_tables doivent être déposées avant l'exécution de pdm_tenant_delete et être restaurées ensuite.
L'utilitaire a la syntaxe suivante :
pdm_tenant_delete -h|-t tenant_name [-C|-R] [-Q]
  • -h
    Affiche les informations d'utilisation de pdm_tenant_delete.
  • -t
    tenant_name
    Spécifie le nom du client hébergé des données à supprimer.
    Le client hébergé doit être marqué comme inactif pour que vous puissiez utiliser cet utilitaire pour supprimer les données.
  • -C
    Spécifie que tous les contacts d'un client hébergé seront marqués comme inactifs. Puisque les contacts peuvent être partagés entre les produits, la logique par défaut ne doit pas supprimer ou désactiver des contacts en série, sauf en cas de demande explicite.
    Cette option est ignorée si l'option de -R est spécifiée.
  • -R
    Spécifie que toutes les lignes de toutes les tables avec client hébergé marquées comme CA_COMMON en ddict.sch seront supprimées, y compris l'objet de client hébergé lui-même.
    Ces tables sont partagées entre plusieurs produits, utilisez donc cette option avec prudence.
  • -Q
    Spécifie un traitement de requête rapide pour exécuter aussi rapidement que possible des requêtes de base de données. Si cet argument n'est pas spécifié, l'utilitaire utilise le traitement de requête d'arrière-plan pour que les requêtes s'exécutent uniquement quand le système est inactif. Cet argument s'améliore le temps d'exécution au détriment d'un impact plus élevé sur un système actif.
    Sous UNIX, la variable LIBPATH doit être définie avant d'exécuter plusieurs utilitaires CA SDM. Utilisez l'utilitaire
    pdm_task
    pour définir la variable LIBPATH avant d'exécuter un utilitaire. Par exemple, entrez "pdm_task pdm_clean_attachments ...".
pdm_tenant_extract : extraction des données du client hébergé
L'utilitaire
pdm_tenant_extract
extrait toutes les données pour un client hébergé spécifié de la base de données. Il extrait les données au format pdm_userload pour qu'elles puissent être facilement chargées dans une autre base de données. L'utilitaire a la syntaxe suivante :
pdm_tenant_extract -h | -c control_file [-d domsrvr] [-g yes|no] [-o output_file] -p phase [[-t tenant_name]...] [-Q] [table1 [table2...]]
  • -h
    Affiche les informations d'utilisation de pdm_tenant_extract.
  • -c
    control_file
    Spécifie l'emplacement du fichier de contrôle pour cet extrait de client hébergé. Pendant la phase initiale, le fichier est créé à l'emplacement spécifié (et il ne doit pas déjà exister). Le fichier doit exister pour les phases de mise à jour et finale.
  • -d domsrvr
    (Facultatif) Spécifie un domsrvr à utiliser.
  • -g yes|no
    (Facultatif) Spécifie si les données publiques sont incluses ou non dans le fichier de sortie. Si cet argument n'est pas spécifié, les données publiques de toutes les tables sont incluses.
  • -o
    output_file
    (Facultatif) Spécifie l'emplacement du fichier de sortie. Si cet argument n'est pas spécifié, la sortie est dirigée vers stdout.
  • -p
    phase
    Spécifie la phase de l'extrait. Utilisez l'une des valeurs suivantes :
    I
    : initiale
    U
    : mise à jour
    F
    : finale
  • -t
    tenant_name
    Spécifie le nom d'un client hébergé à extraire. Cet argument est requis pendant la phase initiale et peut être répété pour plusieurs clients hébergés. Il n'est pas valide pour les phases de mise à jour et finale.
  • -Q
    Spécifie un traitement de requête rapide pour exécuter aussi rapidement que possible des requêtes de base de données. Si cet argument n'est pas spécifié, l'utilitaire utilise le traitement de requête d'arrière-plan pour que les requêtes s'exécutent uniquement quand le système est inactif
  • table1 [table2...]
    (Facultatif) Spécifie les tables à extraire. Si omis, toutes les tables sont extraites.
La sortie de la phase initiale doit être chargée dans une base de données qui n'a jamais été utilisée avec CA SDM, ni aucun autre produit. Chaque table chargée à partir des données de phase initiales est tronquée avant le chargement, ce qui pourrait causer la perte de données si la base de données est déjà utilisée.
Pour éviter les problèmes référentiels pendant le chargement des données, exécutez le script de contraintes de dépôt approprié ($NX_ROOT/samples/views/Oracle/OracleDropConstraints.sql ou $NX_ROOT/samples/views/SQLServer/SQLDropConstraints.sql ). A l'issue du chargement, appliquez les contraintes à nouveau avec le script xxxAddConstraints.sql approprié situé dans le même répertoire.
pdm_userload : chargement des données de client hébergé
L'utilitaire
pdm_userload
sert à charger des données dans une base de données CA SDM. Cet utilitaire est disponible même si l'hébergement multiclient n'est pas installé. L'hébergement multiclient ajoute la prise en charge pour un argument supplémentaire (-t) qui spécifie le nom d'un client hébergé dont l'ID doit être inséré dans la colonne de client hébergé de toutes les lignes insérées ou mises à jour dans une table avec client hébergé. Le client hébergé spécifié doit déjà être dans la base de données.
Lors de l'extraction des données, effectuez les opérations suivantes pour éviter les erreurs dans stdlog :
  1. Avant de commencer à charger des données, fermez CA SDM et redémarrez le produit en mode DBADMIN, comme suit :
    • Windows
      Exécutez pdm_d_mgr -s DBADMIN
    • UNIX
      Exécutez pdm_init -s DBADMIN
  2. Lorsque les données sont chargées, fermez CA SDM à l'aide de la commande pdm_halt.
  3. Redémarrez CA SDM en mode normal.