Utilisation de la méthode REPRO pour déplacer des fichiers

Si le fichier récupérable que vous souhaitez déplacer n'a pas été utilisé en mode RLS, vous pouvez utiliser les commandes des services de méthode d'accès pour effectuer un certain nombre d'actions sur ce fichier. Dans le cas d'un fichier en mode non RLS, les verrous conservés ne posent pas de problème et aucune autre action spéciale n'est nécessaire. Si le fichier récupérable est associé à des verrous de partage de niveau enregistrement, vous devez effectuer des étapes supplémentaires pour déplacer les verrous conservés de l'ancien fichier vers le nouveau.

Pour des informations sur la programmation des commandes des services de méthode d'accès z/OS® DFSMS , voir Commandes des services de méthode d'accèsz/OS DFSMS.

À propos de cette tâche

Dans le cas d'un fichier en mode non RLS, vous pouvez effectuer les actions suivantes sur le fichier, comme illustré dans l'exemple:

  1. Créer un ensemble de données
  2. Copier (REPRO) les données de l'ancien fichier dans le nouveau
  3. Supprimer l'ancien jeu de données
  4. Renommez le nouveau jeu de données avec l'ancien
Exemple :
Les exemples de services de méthode d'accès suivants supposent que CICS.DATASET.A doit être redéfini et que les données doivent être déplacées vers un fichier nommé CICS.DATASET.B, qui est ensuite renommé:
 DEFINE CLUSTER (NAME(CICS.DATASET.B) …
 REPRO INDATASET(CICS.DATASET.A) OUTDATASET(CICS.DATASET.B)
 DELETE CICS.DATASET.A
 ALTER CICS.DATASET.B NEWNAME(CICS.DATASET.A)
Si le fichier récupérable est associé à des verrous de partage de niveau enregistrement, les étapes ci-dessus ne sont pas suffisantes pour les raisons suivantes:
  • La commande REPRO copie les données de CICS.DATASET.A vers CICS.DATASET.B mais laisse les verrous associés au fichier d'origine CICS.DATASET.A.
  • La commande DELETE supprime à la fois le fichier d'origine et les verrous qui lui sont associés.
  • Une fois que vous avez émis la commande ALTER, le fichier a été déplacé, mais le nouveau fichier n'est associé à aucun verrou, qui a été perdu lorsque vous avez supprimé le fichier d'origine.

Pour vous permettre de déplacer des données et de conserver les verrous associés aux données, les services de méthode d'accès fournissent les sous-commandes SHCDS suivantes. Il s'agit de sous-commandes de la commande SHCDS de contrôle de partage VSAM qui doivent toujours être précédées du mot clé SHCDS:

FRSETRR SHCDS
Cette commande marque le fichier comme étant en cours de maintenance, en définissant un indicateur dans l'entrée de catalogue ICF du fichier. (Cet indicateur est affiché en tant que'Récupération requise'dans une liste de catalogue (LISTCAT).)
Commande SHCDS FRUNBIND
Cette commande permet d'annuler la liaison de tous les verrous conservés dans le fichier. Les verrous ne sont plus associés à un emplacement de disque ou à un fichier spécifique.
Commande SHCDS FRBIND
Cette commande lie à nouveau au nouveau fichier tous les verrous conservés qui n'étaient pas liés à l'ancien fichier. Les verrous sont maintenant associés au fichier nommé. Le nom de fichier utilisé dans FRBIND doit correspondre au nom utilisé dans FRUNBIND antérieur.
SHCDS FRRESETRR
Cela libère le fichier de la maintenance et réinitialise l'indicateur dans le catalogue ICF.

Procédure

Sur la base de l'exemple précédent d'utilisation de REPRO pour déplacer un fichier VSAM, la solution complète pour un fichier accessible en mode de partage de niveau d'enregistrement et qui conserve les verrous de partage de niveau d'enregistrement est la suivante:

  1. Mettez au repos le fichier en cours de déplacement afin d'empêcher l'accès des régions CICS® pendant la maintenance.
  2. Créez un ensemble de données dans lequel les données doivent être copiées.
    A ce stade, il ne peut pas avoir le même nom que l'ancien fichier. Par exemple :
     DEFINE CLUSTER (NAME(CICS.DATASET.B) …
  3. Exécutez la sous-commande SHCDS FRSETRR des services de méthode d'accès (AMS) pour marquer l'ancien fichier comme étant en cours de maintenance.
    Par exemple :
     SHCDS FRSETRR(CICS.DATASET.A)
    Cela rend le fichier indisponible alors que le déplacement de l'ancien vers le nouveau est en cours et permet également à l'opération d'annulation de liaison suivante de réussir.
  4. Exécutez la sous-commande SHCDS FRUNBIND pour annuler la liaison de tous les verrous conservés avec l'ancien fichier.
    Par exemple :
     SHCDS FRUNBIND(CICS.DATASET.A)
    Cela permet à SMSVSAM de conserver les verrous prêts à être redéfinis ultérieurement dans le nouveau fichier.
    Vous pouvez inclure les sous-commandes SHCDS FRSETRR et FRUNBIND des étapes 3 et 4 dans la même exécution IDCAMS, mais elles doivent être dans la séquence correcte. Par exemple, l'entrée SYSIN dans IDCAMS se présente comme suit:
    //SYSIN   DD *
     SHCDS FRSETRR(old_dsname)
     SHCDS FRUNBIND(old_dsname)
    /*
  5. Après l'annulation de la liaison, utilisez REPRO pour copier les données de l'ancien fichier dans le nouveau fichier créé à l'étape 1.
    Par exemple :
     REPRO INDATASET(CICS.DATASET.A) OUTDATASET(CICS.DATASET.B)
  6. Utilisez la sous-commande SHCDS FRSETRR pour marquer le nouveau fichier comme étant en cours de maintenance.
    Cette opération est nécessaire pour que l'opération de redéfinition des accès (étape 8) aboutisse. Par exemple :
     SHCDS FRSETRR(CICS.DATASET.B)
  7. Supprimez l'ancien jeu de données pour pouvoir renommer le nouveau jeu de données en lui attribuant le nom de l'ancien jeu de données.
    Par exemple :
     DELETE CICS.DATASET.A
  8. Utilisez les services de méthode d'accès pour renommer le nouvel ensemble de données avec le nom de l'ancien ensemble de données.
    Par exemple :
     ALTER CICS.DATASET.B NEWNAME(CICS.DATASET.A)
    Vous devez attribuer au nouveau fichier le nom de l'ancien fichier pour que l'opération de liaison suivante aboutisse.
  9. Utilisez la sous-commande SHCDS FRBIND pour redéfinir les accès au fichier récupéré de tous les verrous conservés qui n'étaient pas liés à l'ancien fichier.
    Par exemple :
     SHCDS FRBIND(CICS.DATASET.A)
  10. Utilisez la sous-commande SHCDS FRRESETRR après la redéfinition des accès pour réinitialiser l'indicateur de maintenance et activer le fichier à utiliser.
    Par exemple :
     SHCDS FRRESETRR(CICS.DATASET.A)
    Vous pouvez inclure les sous-commandes SHCDS FRBIND et FRRESETRR des étapes 8 et 9 dans une exécution IDCAMS, mais elles doivent être dans la séquence correcte. Par exemple, l'entrée SYSIN dans IDCAMS se présente comme suit:
    //SYSIN   DD *
     SHCDS FRBIND(datasetname)
     SHCDS FRRESETRR(datasetname)
    /*