z/OS : DFSMS et les ACS Routines

Explications et exemples d'ACS Routines

Gérard HUMLER

Cet article a été rédigé dans le but d'expliquer DFSMS et ses principales fonctionnalités. L'auteur du document est aujourd'hui retraité, et il a accepté de participer à la transmission des connaissances liées à z/OS, le système d'exploitation majeur des System z sur mainframe IBM.

Après votre lecture, n'hésitez pas à partager vos expériences avec DFSMS : Commentez

- Titre : z/OS : DFSMS et les ACS Routines

- Auteur : Gérard HUMLER

- Parution : 15 juin 2014

- Mise à jour : 21 juillet 2014

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2014 Gérard HUMLER (egshuml). Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Préambule

- II. Historique

- III. Les fichiers de contrôle de DFSMS

- IV. Utilisation de ISMF

- V. Description de DFSMS

- V-A. Les classes de gestion

- V-A-1. Les DATA CLASS

- V-A-2. Les MANAGEMENT CLASS

- V-A-3. Les STORAGE CLASS

- V-A-4. Les STORAGE GROUP

- V-B. Les ACS Routines

- V-B-1. Les variables disponibles

- V-B-1-a. Comparaison

- V-B-1-b. Expressions booléennes

- V-B-2. Les opérateurs d'action (STATEMENT)

- V-C. Exemple d'ACS Routine

- V-D. Compilation et validation des ACS Routines

- V-E. Tests des ACS Routines

- V-F. Activation de la configuration

- VI. De quoi sera fait demain ?

- VI-A. Les nouvelles unités de contrôle

- VI-B. Le Cloud

- VII. Remerciements

- VIII. Liens utiles

I - Préambule

Ce document ne concerne que DFSMS et son compagnon DFSMSdfp. Il ne parle pas des produits complémentaires (DFSMShsm, DFSMSdss, DFSMSrmm et autres) qui seront décrits éventuellement dans un autre document.

Ce document permet d'avoir une idée du concept SMS. Il ne décrit pas les paramètres d'initialisation système de DFSMS.

De la même manière, certaines fonctions ne sont pas décrites, car spécifiques ou complexes à mettre en œuvre :

- OAM (Object Access Method) permettant le stockage de fichiers audio, image ou vidéo ;

- RLS (Record Level Sharing) permettant la gestion d'un fichier VSAM au niveau de l'enregistrement dans un environnement SYSPLEX.

II - Historique

Le concept SMS à été annoncé officiellement par IBM en avril 1986, mais en mai 1984 j'ai assisté à sa présentation en interne au laboratoire de San José en Californie avec le système d'exploitation MVS/XA.

Ce concept répond aux attentes des clients (américains essentiellement) confrontés aux problèmes de la croissance de leur parc de mémoires externes :

- coût total du stockage ;

- coût des capacités non utilisées ;

- complexité de la gestion de ces mémoires du fait :

- de la croissance,

- du besoin en performance,

- des externes, le JCL étant lié aux caractéristiques des unités,

- de l'architecture, les méthodes d'accès étant liées aux caractéristiques physiques des unités,

- du format des données,

- du temps disponible pour les sauvegardes qui se réduit dramatiquement.

Les objectifs en matière de gestion des mémoires externes tendent vers une solution intégrée :

- distinguant la représentation logique des données de l'organisation physique des supports ;

- simplifiant l'interface utilisateur (le JCL essentiellement).

Disposant d'une indépendance totale vis-à-vis des caractéristiques physiques des unités, la gestion des mémoires externes peut devenir « system managed » par l'intermédiaire de « user construct form » (devenu ACS routines) que l'on peut voir comme une extension du JCL décrivant :

- les données (taille, performances, etc.) ;

- la politique de gestion (date de rétention, backup, migration, etc.).

Ceci nécessite de la part des utilisateurs des efforts :

- de normalisation des noms de fichiers ;

- de centralisation de la gestion des mémoires externes (Storage Manager) ;

- d'isolation des allocations par rapport aux caractéristiques physiques des unités.

Comment faisait-on avant SMS ?

Les volumes physiques (VOLSER disques) étaient attribués aux grandes applications par la production ou le système. Le préparateur d'une de ces applications devait faire le ménage dans ses volumes avant de lancer les batchs de nuit et devait s'assurer que l'espace disque était suffisant pour exécuter ses travaux. Chaque préparateur assurait la gestion de son espace disque.

Les conflits étaient nombreux, surtout avec des disques démontables comme les 2314 ou les 3330.

III - Les fichiers de contrôle de DFSMS

DFSMS nécessite trois fichiers pour fonctionner :

- le SCDS (Source Control Data Set) qui contient les règles de gestion des fichiers SMS ;

- l'ACDS (Active Control Data Set) qui contient une copie de la dernière configuration contenue dans le SCDS ;

- le COMMDS (Communication Data Set) qui permet de communiquer les informations de la configuration active aux autres partitions d'un complexe SMS (SMSPLEX).

Ces fichiers peuvent être SMS ou non SMS.

IV - Utilisation de ISMF

ISMF (Interactive Storage Management Facility) est la partie de DFSMSdfp qui est utilisée pour gérer SMS. L'écran suivant s'affiche si vous êtes STORAGE MANAGER (STGADMIN) :

Select one of the following options and press Enter:
0  ISMF Profile             - Specify ISMF User Profile
1  Data Set                 - Perform Functions Against Data Sets
2  Volume                   - Perform Functions Against Volumes
3  Management Class         - Specify Data Set Backup and Migration Criteria
4  Data Class               - Specify Data Set Allocation Parameters
5  Storage Class            - Specify Data Set Performance and Availability
6  Storage Group            - Specify Volume Names and Free Space Thresholds
7  Automatic Class Selection - Specify ACS Routines and Test Criteria
8  Control Data Set         - Specify System Names and Default Criteria
9  Aggregate Group          - Specify Data Set Recovery Parameters
10 Library Management       - Specify Library and Drive Configurations
11 Enhanced ACS Management  - Perform Enhanced Test/Configuration Management
C  Data Collection          - Process Data Collection Function
L  List                     - Perform Functions Against Saved ISMF Lists
P  Copy Pool                - Specify Pool Storage Groups for Copies
R  Removable Media Manager  - Perform Functions Against Removable Media
X  Exit                     - Terminate ISMF

Les autorisations nécessaires pour être STORAGE MANAGER sont indiquées dans le document DFSMSdfp Storage Administration (SC23-6860-01) et ne fait pas partie de ce document.

Les options 3 à 8 d'ISMF seront utilisées.

V - Description de DFSMS

DFSMS est un sous-système de z/OS qui est initialisé lors de l'IPL de la partition. Aucune allocation n'est possible (SMS ou non SMS) avant qu'il ne soit initialisé.

Il permet de contrôler et d'affecter des valeurs complémentaires à celles fournies lors de l'allocation d'un fichier.

V-A - Les classes de gestion

Quatre types de classes sont à la disposition du gestionnaire de l'espace de stockage :

- les DATA CLASS pour contrôler et éventuellement modifier les paramètres d'allocation d'un fichier (règles de nommage, taille des allocations, etc.) ;

- les MANAGEMENT CLASS pour la gestion de ces fichiers (date d'expiration, migration et backup entre autres) ;

- les STORAGE CLASS pour affecter un support physique adapté pour ces fichiers ;

- les STORAGE GROUP pour affecter des volumes supports à ces STORAGE CLASS.

Il faut rappeler que les attributs (migration, backup, allocation secondaire, etc.) d'un fichier sont stockés dans un bloc de contrôle spécifique (DSCB ou Data Set Control Block) lors de son allocation. Un changement de classes de gestion n'affecte pas les caractéristiques SMS de ces fichiers.

V-A-1 - Les DATA CLASS

Elles permettent de contrôler et éventuellement de modifier certaines caractéristiques du fichier à allouer. Elles sont définies par l'option 4.3 d'ISMF.

Les valeurs de la DATA CLASS peuvent être fusionnées avec celles spécifiées dans l'allocation du fichier. Ces valeurs sont substituées à celles de l'allocation quand elles ne sont pas nulles.

Par exemple, le type de fichier pour une bibliothèque (DSORG = PO) créée par un USERID sera forcé à PDSE par la routine d'affectation de la DATA CLASS (ACS routine) :

CDS Name  . . . . . : SYS1.SMS.SCDS00
Data Class Name . . : DCPDSE

Data Set Name Type  . . . . . : LIBRARY

La DATA CLASS imposera DSNTYPE = LIBRARY.

Seule une DATA CLASS peut être spécifiée dans les ACS routines de DATA CLASS.

V-A-2 - Les MANAGEMENT CLASS

Elles permettent de contrôler et de modifier les paramètres de gestion des fichiers tels que :

- la durée d'existence (RETPD ou EXPDT) dans l'environnement z/OS ;

- la rétention limite autorisée par les normes de l'entreprise ;

- la durée de résidence des fichiers sur les disques de production avant d'être migrés sur des supports moins coûteux (disque SATA ou cassettes par exemple). C'est la durée d'inactivité de ces fichiers (c'est-à-dire qu'ils ne sont pas référencés en lecture ou en écriture durant cette période) ;

- la sauvegarde automatique ou manuelle des fichiers :

- le nombre de versions conservées,

- la durée de rétention de ces versions.

Ces opérations sont généralement effectuées par un logiciel spécialisé (DFSMShsm pour IBM) ;

- le nombre de versions d'un GDG (Generation Data Group) conservées sur les disques de l'espace primaire ;

- etc.

Les valeurs de la MANAGEMENT CLASS sont fusionnées avec celles spécifiées dans l'allocation du fichier.

Par exemple, EXPDT=99365 dans le JCL indique un fichier qui n'est jamais supprimé (héritage du XXe siècle). Cela se traduit par l'information suivante dans les caractéristiques du fichier :

Creation date . . . : 1999/05/12
Expiration date . . : ***Perm***

Il est possible de modifier cette date d'expiration en indiquant dans la MANAGEMENT CLASS (option 3.4 de ISMF) :

CDS Name  . . . . . . . : SYS1.SMS.SCDS00
Management Class Name . : MCSTD
Description  : CLASSE POUR TOUT LE MONDE
Expiration Attributes
Expire after Days Non-usage  . : 20
Expire after Date/Days . . . . : 0
Retention Limit  . . . . . . . : 3650

La date d'expiration devient alors après l'allocation :

Creation date . . . : 1999/05/12
Expiration date . . : 2009/05/09

Seule une MANAGEMENT CLASS peut être spécifiée dans les ACS routines de MANAGEMENT CLASS.

V-A-3 - Les STORAGE CLASS

Un fichier sur disque n'est réellement SMS que s'il possède une STORAGE CLASS et une DATA CLASS. La STORAGE CLASS permet d'attribuer ou non des services offerts par les unités de contrôle de disques tels que :

- « Mirroring » ;

- SNAPSHOT ;

- FLASHCOPY.

Les STORAGE CLASS perdent beaucoup de leur intérêt et ne sont plus utilisées que pour indiquer que le fichier est SMS :

- les unités de contrôle actuelles des constructeurs (IBM, EMC et HDS) gèrent les entrées/sorties dans leur mémoire cache et utilisent des disques dits « en grappe » pour lire des données si elles ne sont pas dans le cache (en direct) ou écrire (en asynchrone sur disque) les données à partir de la mémoire spécifique à l'écriture (NVS Non Volatile Storage) ;

- ces unités de contrôle contiennent des logiciels qui associent les services évoqués précédemment avec des adresses d'unité de disques connues de z/OS et que l'on peut activer à partir de l'ordinateur.

Le PAV (Parallel Access Volume) est géré en dynamique par WLM. Aujourd'hui, ce dispositif est généralisé pour les volumes SMS et non SMS.

V-A-4 - Les STORAGE GROUP

Elles permettent d'assigner un groupe de volume (VOL=SER) permettant l'allocation des fichiers.

Généralement, ces groupes sont spécialisés :

- un groupe dédié aux fichiers temporaires, aux DUMP ;

- un ou plusieurs groupes pour les data base DB2 (Data et index séparés par exemple) ;

- un groupe pour les fichiers du développement ;

- un ou plusieurs groupes pour les fichiers de production (petits et grands fichiers) ;

- un groupe pour les fichiers « strippés » ;

- etc.

Un volume ne peut appartenir qu'à un STORAGE GROUP.

Les volumes d'un STORAGE GROUP doivent être de même géométrie (pas de mélange 3380 et 3390 par exemple).

Les volumes d'un STORAGE GROUP peuvent être de tailles différentes (3390-3, 3390-9 et supérieur).

Les volumes d'un STORAGE GROUP doivent être initialisés avec ICKDSF avec le paramètre STORAGEGROUP.

Ne pas définir le STORAGE GROUP VIO, car la fonction VIO n'est plus utilisée.

Vous pouvez indiquer si le STORAGE GROUP doit être traité automatiquement par un logiciel de gestion des fichiers tel que DFSMShsm (Backup, migration, dump).

Afin de vous prémunir des conséquences d'un STORAGE GROUP qui ne permet pas à SMS d'allouer un fichier (STORAGE GROUP « plein », fragmentation excessive des disques, etc.), je vous conseille la création d'un STORAGE GROUP de type OVERFLOW qui permettra d'allouer des fichiers lorsque le STORAGE GROUP principal sera plein (pool de débordement). Dans ce cas, vous indiquez le nom de ce STORAGE GROUP dans le paramètre Extend SG Name du groupe principal.

Il ne peut y avoir qu'un seul pool de débordement pour un STORAGE GROUP. Par contre, un pool de débordement peut être commun à plusieurs STORAGE GROUP. Plusieurs pools de débordement peuvent être déclarés pour plusieurs STORAGE GROUP (exemple : un pool de débordement affecté aux Tables Spaces DB2, un autre pour les fichiers de production).

En général, le pool de débordement ne comprend que quelques volumes. Après agrandissement du pool principal, déplacez les fichiers dans ce groupe principal par un utilitaire adéquat (DFSMSdss par exemple). Veillez à ce que le pool de débordement soit toujours vide.

Si vous définissez un STORAGE GROUP VIO, ne pas oublier de lui définir un pool de débordement afin d'éliminer les problèmes d'allocation des VIO (bien que de moins en moins utilisées).

Il faut ensuite déclarer :

- le ou les volumes constituant ce STORAGE GROUP (VOLSER) ;

- le statut de ces volumes pour les autres partitions :

- ENABLE : peut accéder aux volumes du pool pour créer des fichiers,

- DISALL : ne peut accéder aux volumes du pool,

- DISNEW : peut accéder aux fichiers existants sur les volumes du pool mais il n'est pas possible de créer des fichiers sur ces volumes,

- QUIALL : identique à DISALL pour JES3.

Le statut des STORAGE GROUP ou d'un volume SMS peut être changé par une commande z/OS (VARY SMS).

V-B - Les ACS Routines

Le gestionnaire de l'espace de stockage dispose des routines écrites dans un langage proche du REXX (ACS routines) pour affecter aux fichiers les différentes classes décrites précédemment lors de leur création.

Les ACS routines sont appelées essentiellement lors des opérations suivantes :

- carte DD du JCL ;

- allocation dynamique ;

- les commandes de DFSMSdss COPY, RESTORE et CONVERT ;

- les commandes de DFSMShsm RECALL et RECOVER ;

- les commandes AMS ALLOCATE, DEFINE et IMPORT.

Les autres opérations ne sont pas traitées dans ce document (OAM, Distribued File Manager et Unix).

Il y a quatre ACS routines correspondant aux classes de gestion.

Les exemples donnés sont très simples pour la compréhension de l'écriture de ces ACS routines. Celles utilisées dans une entreprise sont plus complexes, car elles doivent intégrer la gestion de l'espace disque pré SMS (en particulier les FILTLIST).

V-B-1 - Les variables disponibles

Elles sont de deux types :

- quatre variables READ/WRITE qui sont les classes de gestion : &DATACLAS, &MGMTCLAS, &STORCLAS et &STORGRP sont les seules qui peuvent être modifiées dans une ACS routine ;

- les autres variables qui ne peuvent pas, hélas, être modifiées comme le permettaient des logiciels tels que STOPX37. Elles représentent les caractéristiques d'allocation connues de DFSMS lors de l'appel de la routine (certaines variables peuvent être nulles) :

Variable          Variable         Variable    Variable   Variable
------------------------------------------------------------------
&ACCT_JOB         &DEF_MGMTCLAS    &GROUP      &MEMNQUAL  &SECLABL
&ACCT_STEP        &DEF_STORCLAS    &HLQ        &MSPDEST   &SECOND_QTY
&ACSENVIR         &DSN             &JOB        &MSPARM    &SIZE
&ACSENVR2*        &DSNTYPE         &LABEL      &MSPOLICY  &SPACE_TYPE
&ALLVOL           &DSORG           &LIBNAME    &MSPOOL    &SYSNAME
&ANYVOL           &DSOWNER         &LLQ        &NQUAL     &SYSPLEX
&APPLIC           &DSTYPE          &MAXSIZE    &NVOL      &UNIT
&BLKSIZE          &EATTR           &MEMHLQ     &PGM       &USER
&DD               &EXPDT           &MEMLLQ     &RECORG    &XMODE
&DEF_DATACLAS     &FILENUM         &MEMN       &RETPD

* À partir de z/OS V2R1

Certaines variables concernent seulement OAM (&MEMHLQ, &MEMLLQ, &MEMN et &MEMNQUAL), d'autres concernent les cassettes gérées par DFSMSrmm (&MSPDEST, &MSPARM, &MSPOLICY et &MSPOOL).

Rappel : les variables READ/WRITE sont disponibles en lecture dans les ACS routines (sauf &STORGRP) tel qu'indiqué dans le tableau suivant :

ACS routine       &STORGRP         &MGMTCLAS         &STORCLASS  &DATACLAS
--------------------------------------------------------------------------
Storage Group     SET/Compare      Compare           Compare     Compare
Management        Invalide         SET/Compare       Compare     Compare
Class
Storage Class     Invalide         Compare           SET/Compare Compare
Data Class        Invalide         Compare           Compare     SET/Compare

Seule l'ACS routine concernée peut modifier la classe de gestion correspondante (par exemple l'ACS routine de traitement de la MANAGEMENT CLASSS ne peut modifier que la variable &MGMTCLAS).

Pour plus d'information concernant les variables READ, se référer à la documentation IBM DFSMSdfp Storage Administration (SC23-6860-01).

V-B-1-a - Comparaison

Seuls les opérateurs de comparaison peuvent être utilisés :

Opérateur         Signification
-------------------------------
GT ou >           Plus grand
LT ou <           Plus petit
NG ou ¬>          Pas plus grand
NL ou ¬<          Pas plus petit
EQ ou =           Égal
NE ou !=          Non égal
GE ou >=          Plus grand ou égal
LE ou <=          Plus petit ou égal

V-B-1-b - Expressions booléennes

Deux opérateurs sont disponibles :

- AND ou &&

- OR ou |

V-B-2 - Les opérateurs d'action (STATEMENT)

Appelés STATEMENT dans la terminologie d'IBM, ils sont au nombre de 9 et vous permettent d'écrire les ACS routines :

- PROC        Début d'une ACS routine ;

- FILTLIST   Définition de listes de filtrage (nom de fichier, unité, etc.) ;

- SET          Affectation d'une valeur à une classe de gestion ;

- DO           Début d'un groupe de STATEMENT ;

- IF            Permet l'exécution conditionnelle d'un STATEMENT ;

- SELECT     Définition conditionnelle d'un groupe de STATEMENT ;

- EXIT         Permet la fin de l'exécution d'une ACS routine. Peut être utilisé pour provoquer une erreur d'allocation (JCL ERROR) ;

- WRITE      Écriture d'un message dans la LOG du JOB ;

- END         Indique la fin d'un STATEMENT DO, SELECT ou d'une ACS routine.

Les FILTLIST représentent les fichiers ou groupe de fichiers qui peuvent être ou non éligibles de DFSMS. Ce sont en général les STATEMENTS les plus nombreux dans une ACS routine.

V-C - Exemple d'ACS Routine

Voici un exemple d'ACS routine de DATA CLASS :

Si le fichier ne doit pas être SMS, mettre une DATA CLASS nulle (‘').

Exemple d'une ACS Routine de DATA CLASS

PROC 0 DATACLAS
/*                                                                   */
/*********************************************************************/
/*                                                                   */
/*         FILTLIST POUR LA DATA CLASS                               */
/*                                                                   */
/*********************************************************************/
/*                                                                   */

FILTLIST SYSTEM INCLUDE(SYS%.**)

FILTLIST TAPE INCLUDE('3490','3590')

/*                                                                   */
/*********************************************************************/
/*                                                                   */
/*         PAS DE DATA CLASS                                         */
/*                                                                   */
/*********************************************************************/
/*                                                                   */

SET &DATACLAS = ''

/*                                                                   */
/*********************************************************************/
/*                                                                   */
/*         PAS DE DATA CLASS POUR LES FICHIERS SYSTEME               */
/*                                                                   */
/*********************************************************************/
/*                                                                   */

IF &DSN = &SYSTEM THEN EXIT

/*                                                                   */
/*********************************************************************/
/*                                                                   */
/*         PAS DE DATA CLASS POUR LES FICHIERS SUR CASSETTE          */
/*                                                                   */
/*********************************************************************/
/*                                                                   */

IF &UNIT = &TAPE THEN EXIT

/*                                                                   */
/*********************************************************************/
/*                                                                   */
/*         DATA CLASS PAR DEFAUT                                     */
/*                                                                   */
/*********************************************************************/
/*                                                                   */

SET &DATACLAS = 'DEFAUT'

/*                                                                   */
/*********************************************************************/
/*                                                                   */
/*         FORCE PDSE POUR LES FICHIERS DES DEVELOPPEURS             */
/*                                                                   */
/*********************************************************************/
/*                                                                   */
IF ((&DSORG = 'PO') AND (&HLQ = &USER)) THEN SET &DATACLAS = 'DCPDSE'

/*                                                                   */
/*********************************************************************/
/*                                                                   */
/*         PAS D'INDICATION DU TYPE DE FICHIER ON FORCE LES VALEURS  */
/*                                                                   */
/*********************************************************************/
/*                                                                   */

ELSE
IF &DSNTYPE = '' THEN DO
SET &DATACLAS = 'DCALLOC'
WRITE 'DATACLAS '&DATACLAS' PAR DEFAUT'
END

END

Voici un autre exemple très simple d'ACS routine STORAGE GROUP :

Exemple d'une ACS Routine de STORAGE GROUP

PROC 1 STORGRP
/*                                                                   */
/*        LISTE DES FILTRES SUR LES NOMS DE FICHIERS                 */
/*                                                                   */

FILTLIST TEST INCLUDE(COMPTA.TEST.**,ACHAT.TEST.**)
FILTLIST PROD INCLUDE(COMPTA.**,ACHAT.**)

/*                                                                   */
/*        SI PAS DE STORCLAS ALORS SGNUL (PAS DE VOLUME)             */
/*                                                                   */
IF &STORCLAS = '' THEN DO
SET &STORGRP = 'SGNUL'
EXIT
END
/*                                                                   */
/*        SELECTION DU STORAGE GROUP                                 */
/*                                                                   */

SET &STORGRP = 'SGPSTD'

SELECT (&DSN)
/*                                                                   */
/*        TRAITEMENT DES FICHIERS DES DEVELOPPEURS                   */
/*                                                                   */
WHEN ('TEST') SET &STORGRP = 'SGDEV'
/*                                                                   */
/*        TRAITEMENT DES FICHIERS DE PRODUCTION                      */
/*                                                                   */
WHEN ('PROD') DO
/*                                                                   */
/*        LES GROS FICHIERS VONT SUR UN STORAGE GROUP SPECIFIQUE     */
/*                                                                   */
IF (&SPACE_TYPE EQ 'MB')THEN DO
IF &SIZE > 500MB THEN SET &STORGRP = 'SGPBIG'
END
EXIT
END
OTHERWISE EXIT
END
/*                                                                   */
/*        SI C'EST UN DUMP - IL VA SUR UN STG SPECIFIQUE             */
/*                                                                   */
IF &HLQ = 'DUMP' THEN SET &STORGRP = 'SGDUMP'
/*                                                                   */
/*        SI C'EST UN FICHIER UTILISATEUR IL VA SUR SGDEV            */
/*                                                                   */
IF &HLQ = &USER THEN SET &STORGRP = 'SGDEV'
/*                                                                   */
/*        TRAITEMENT DES FICHIERS TEMPORAIRES                        */
/*                                                                   */
IF &DSNTYPE = 'TEMP' THEN SET &STORGRP = 'SGTEMPO'
END

Il est dommage qu'IBM ait créé un langage spécifique pour cette fonction, car on mélange souvent du REXX avec ce langage.

V-D - Compilation et validation des ACS Routines

Dans ISMF, l'option 7.2 permet de « compiler » ces routines afin de les transformer en objet dans le fichier SCDS. Après avoir renseigné la bibliothèque de source et le nom de l'ACS routine, ISMF compile celle-ci.

Le résultat est stocké dans un fichier dont le nom est fourni dans cet écran.

Elle pourra être validée par SMS si le code retour de compilation de cette routine est 0.

La validation (option 7.3) consiste à vérifier que les classes de gestion décrites dans l'ACS routine existent bien dans le SCDS.

Afin de ne pas surcharger ce document, les résultats de ces opérations ne sont pas présentés entièrement.

Exemple de compilation :

ACS TRANSLATOR ***** TIME 12:59:11 DATE 02/20/2006 PAGE 0001 *****

SCDS NAME:               SYS1.SMS.SCDS00
ACS SOURCE DATA SET:     SYS1.SMS.ROUTINES
ACS SOURCE MEMBER:       DCPROD
…..
Le listing de la routine
…..
TRANSLATION RETURN CODE:  0000

Exemple de validation :

VALIDATION RESULTS

VALIDATION RESULT:  VALIDATION SUCCESSFUL
SCDS NAME:          SYS1.SMS.SCDS00
ACS ROUTINE TYPE:   DC
DATE OF VALIDATION: 2006/02/20
TIME OF VALIDATION: 13:04

V-E - Tests des ACS Routines

L'option 7.4 permet de tester une ou plusieurs ACS routines avant leur mise en production. Le test est très important afin de ne pas provoquer de perturbations de la production lors de leur activation.

Le « nec plus ultra » serait de créer autant de jeux de test qu'il y a de conditions d'affectation dans les ACS routines afin de vérifier que les modifications effectuées n'affectent pas l'environnement de test et de production. Cela n'est pas facile mais il faut se constituer une bibliothèque contenant les différents tests effectués et de pouvoir vérifier que le résultat pour chaque membre est bien identique à celui existant précédemment.

Exemple de test d'une ACS routine de DATA CLASS :

ACS TESTING RESULTS

CDS NAME         : SYS1.SMS.SCDS00
ACS ROUTINE TYPES: DC
ACS TEST LIBRARY : SYS1.ACS.TEST

ACS TEST
MEMBER       EXIT CODE   RESULTS
---------    ----------  ------------------------------------
DESCRIPTION: FICHIERS SYSTEME
EXPECTED RESULT: CLASSE DC NULLE
TEST01                0  DC = NULL VALUE ASSIGNED

V-F - Activation de la configuration

L'option 8.5 d'ISMF permet d'activer la configuration à partir du fichier SCDS. Cette activation nécessite la réponse à un REPLY à la console pour des raisons de sécurité :

12.53.22 INSTZOS TSU02990 *84 IGD043D REPLY 'Y' TO ALLOW ACTIVATION OF A
CONFIGURATION BY APPOLON, 'N' TO DENY THE REQUEST

Répondre Y permet d'activer une nouvelle configuration de SMS.

VI - De quoi sera fait demain ?

Il est prévisible que les évolutions de DSFSMS et de ses composants porteront sur la mise en œuvre complète d'EAV (Extended Address Volume) et de RLS (Record Level Sharing). Certaines évolutions apparaissent déjà dans z/OS V2R1.

VI-A - Les nouvelles unités de contrôle

Les unités de contrôle incluent dès à présent des disques SSD ou de la mémoire Flash et l'accès à des dérouleurs de cassettes inconnus de z/OS. La migration d'un support vers les autres s'effectuera en interne sans référence à DFSMS. La MANAGEMENT CLASS pourra disparaître au profit d'une classe de transition indiquant la durée maximale de présence sur les supports les plus performants (ML0 sur SSD ou mémoire Flash, ML1 sur disque en grappe et éventuellement ML2 sur cassette) et qui sera gérée par l'unité de contrôle. La migration d'un support vers l'autre sera transparente pour la production.

VI-B - Le Cloud

Celui-ci s'intégrera dans DFSMS, mais comment l'architecture et l'accès au « Cloud » seront résolus afin de centraliser sa gestion par DFSMS ? Car les concurrents sont déjà à l'œuvre.

VII - Remerciements

Cet article a été rédigé par egshuml (Gérard HUMLER) en quelques jours, il a souhaité partager son expérience sur le produit, et la communauté developpez.net l'en remercie.

Metalman (Fabrice BOISSIER) a réalisé la mise en forme du document pour l'adapter au format.

Il ne faut pas oublier f-leb qui a relu et corrigé l'ensemble du document, merci aussi à lui.

VIII - Liens utiles

Documentation DFSMS (z/OS 2.1) :

http://pic.dhe.ibm.com/infocenter/zos/v2r1/index.jsp?topic=%2Fcom.ibm.zos.v2r1.ida%2Fida.htm

DFSMSdfp Storage Administration (SC23-6860-01) :

http://pic.dhe.ibm.com/infocenter/zos/v2r1/index.jsp?topic=%2Fcom.ibm.zos.v2r1.idas200%2Ftoc.htm

IBM RedBooks :

http://www.redbooks.ibm.com/