Accès rapide: bases, pools, Sous systèmes, Travaux, Langage de Controle, Commandes, Sauvegardes, Communications, Client Access, Sécurité, exploitation.
L'AS400 est un système méconnu et peu intéressant: il nécessite une formation réduite, est très sécurisé, rarement en panne, et pourvu de nombreuses aides. Passer par des commandes fiables et bien guidées pour réaliser des opérations de configurations sensibles génère chez certains spécialistes système un sentiment de frustration indéniable.
Ce document présente le système d'exploitation de l'AS400 et son langage de commande.
L'espace disque est géré par la machine et non accessible directement à l'utilisateur. La pagination en tre mémoire centrale et disques est automatique.
Des disques peuvent être réservés à des usages spécifiques, pour des sauvegardes par exemple.
Les coûts relativement bas favorisent l'utilisation de disques miroirs, à définir lors de l'installation de la machine. Priorité est mise sur la sécurité, et les équipes système n'ont pas accès à ses niveaux de configuration, réservés à la maintenance IBM.
Le partage des ressources relève de notions avancées, mais les comprendre permet de mieux maitriser son environnement de travail et d'éviter de grosses erreurs en gestion de surcharge des systèmes.
Termes fondamentaux:
Le moteur de la machine est un Processeur. Un processeur traite les travaux un à un, en alternance.
La mémoire centrale du système est découpée en pools partagés,
qui sont utilisés par les sous systèmes.
La liste des pools existants s'obtient par la commande
WRKSHRPOL
.
Si la machine ajuste automatiquement les performances
(valeurs système QPFRADJ
) les valeurs s'ajustent
en fonction des consommations instantannées,
efficacement si les variations ne sont pas trop brutales.
ATTENTION: la taille des pools est une donnée extrêmement sensible, et ne doit pas être modifiée à la légère.
Ecran de gestion des poolsGestion des Pools Partagés Système: AS400X Taille de la mémoire principale (ko) . . . : 16384 Indiquez vos modifications (si elles sont admises), puis appuyez sur Entrée Taille Activ Taille ID Pool définie Maxi attribuée pool *MACHINE _4841 +++ 4841 1 *BASE 2420 __4 2420 2 *INTERACT _9047 __4 9047 4 *SPOOL ___76 __3 76 3 *SHRPOOL1 ____0 __0 *SHRPOOL2 ____0 __0 *SHRPOOL3 ____0 __0 A suivre... Commande ===> ____________________________________________________________________ F3=Exit F4=Invite F5=Réafficher F9=Rappel F11=Texte F12=Annuler
Les numéros de polls de cet écran sont repris sur les écrans de gestion des sous systèmes.
*MACHINE
: utilisé par le système
*INTERACT
: utilisé par les travaux intéractifs
*SPOOL
: gestion des impressions
*SHRPOOLn
: disponibles pour des usages spécifiques
*BASE
: ce qui reste, s'y déroulent les travaux Batch
Les taches se succèdent dans le processeur suivant
timslice
).
La commande WRKSYSSTS
renseigne sur l'activité des pools
Gestion de l'état du système Système: AS400X % UC utilisée . . . . . : 99,9 Mémoire secondaire: Temps écoulé . . . . . . : 00:00:01 ASP Système . . . . . : 3955 M Travaux connus du syst . : 259 % ASP système utilisé : 94,9982 % d'adresses utilisées: Totale . . . . . . . . : 3955 M Permanentes . . . . . : 9,215 Non protégée utilisée : 1035 M Temporaires . . . . . : 0,212 Non protégée maximale : 1040 M Indiquez vos modifications (si admises), puis appuyez sur Entrée Pool Taille Taille Act --Pagin BD-- Pagin non-BD syst pool réserv max Taux Pages Taux Pages 1 __4852 2369 +++ 0,0 0,0 0,5 5,3 2 3931 0 __3 0,0 153,0 0,0 0,0 3 ____70 0 __3 0,0 0,0 0,0 0,0 4 __7351 594 __4 15,5 15,5 18,5 121,3 Fin Commande ===> ____________________________________________________________________ F3=Exit F4=Invite F5=Réafficher F9=Rappel F10=Relancer F11=Données de transition F12=Annuler F24=Autres touches
Données les plus significatives:
% UC utilisé
: en cas de forte charge de la machine,
un pourcentage proche de 100% signifie que le processeur tourne
à plein régime et n'est pas en attente de pagination
% ASP utilisé
: indique l'occupation des disques,
qui ne doit pas être trop forte, inférieure à 75%.
Au delà d'un certain seuil, les fonctions de communication ont
du mal à démarrer ou peuvent couper automatiquement.
Pagination non BD
: la pagination BD est normale,
et signifie que des données de tables sont chargées en mémoire,
mais la pagination non BD du pool système ne doit pas dépasser
un seuil critique, en général 2.
Activité max
: définit le nombre de travaux pouvant s'exécuter
simultanément pour le sous système. Au delà, les travaux surnuméraires
deviennent inéligibles et son exclus de l'enchainement d'exécution
des travaux. La présence de travaux iniligible est anormale,
le blocage aurait du être géré en amont en limitant l'activité au niveau
des files d'attente.
Cet écran montre que la machine manque d'espace disque et est en suractivité
temporaire. Le taux de pagination non BD du pool 1 est normal
et la surchage du pool 4 (*INTERACT
) n'est pas gênante
si elle ne se prolonge pas. L'UC réagit correctement.
Un sous système utilise des ressources de pools. La commande WRKSBS
résume l'activité des sous systèmes actifs et les pools concernés.
Gestion des sous-systèmes Système: AS400X Indiquez vos options, puis appuyez sur ENTREE. 4=Arrêter sous-système 5=Afficher description de sous-système 8=Gérer travaux du sous-système Mémoire --------Pools de sous-système--------- Opt S-système totale (Mo) 1 2 3 4 5 6 7 8 9 10 _ QBASE 0,00 2 3 _ QPGMR 0,00 2 2 _ QSERVER 0,00 2 _ QSNADS 0,00 2 _ QSOC 0,00 2 _ QSPL 0,00 2 4 _ QSVCDRCTR 0,00 2 _ QSYSWRK 0,00 2 _ QUSRWRK 0,00 2 Fin Paramètres ou commande ===> _____________________________________________________________________________ F3=Exit F5=Réafficher F11=Données système F12=Annuler F14=Gérer état du système
Le choix du pool pour un travail est fait au moment de son lancement.
*BASE
-pool 2-, qui désigne la mémoire non explicitement affectée.
Les travaux issus de QBATCH
utilisent généralement ce pool
*MACHINE
-pool 1-, réservé au système pour son propre usage
QINTER
sur le pool *INTERACT
-pool 4-
QSPL
sur le pool *SPOOL
-pool 3-
ATTENTION: dans l'affichage du détail d'un sous système,
la numérotation est le spécifique : pour QBASE
, le pool
2
sera le pool système 3
, soit QBASE
.
La configuration des pools est une mécanique délicate et n'intervient que dans des cas limités. Lors de l'installation de la machine, deux cas de figure sont possibles
QBASE
qui gére tous les travaux en vrac
QCTL
, destiné à
gérer les taches systèmes depuis un écran console privilégié.
Les sous systèmes QINTER
et QBATCH
sont démarrés
automatiquement
Le mode de démarrage des sous systèmes est contrôlé par la valeur
système QCTLSBSD
,
modifiable par un gestionnaire système confirmé.
De base, l'officier de sécurité ne peut se connecter que sur la console
(DSP01
). Cette contrainte peut être levée.
Examiner la documentation en ligne et en particulier les
valeurs système de type *SEC
.
La commande WRKACTJOB
permet d'obtenir une liste
des travaux actifs. Le classement par défaut est par sous système,
mais peut être précisé par F4
au lancement de la commande
ou par F16
après avoir positionné le curseur sur la colonne
à trier. Cette approche permet d'identifier immédiatement un travail
qui monopolise les ressources, mais la commande elle même est assez
consommatrice, d'autant plus qu'elle s'exécute avec une priorité très élevée.
Gestion des travaux actifs AS400X % UC: 0,3 Intervalle: 00:01:32 Travaux actifs: 160 Indiquez vos options, puis appuyez sur ENTREE. 2=Modifier 3=Suspendre 4=Arrêter 5=Gérer 6=Libérer 7=Afficher message 8=Gérer fichiers spoule 13=Déconnecter ... Opt S-syst/trav Utilisat Type % UC Fonction Etat __ QBASE QSYS SBS 0,0 DEQW __ DSP01 QSYSOPR INT 0,1 CMD-WRKACTJOB DSPW __ +DSP09 HUBERT INT 0,0 DSPW __ PC027 LARREYA INT 0,0 CMD-WRKACTJOB RUN __ QSYSSCD QPGMR BCH 0,0 PGM-QEZSCNEP EVTW __ QPGMR QSYS SBS 0,0 DEQW __ QSERVER QSYS SBS 0,0 DEQW __ QPWFSERVSD QUSER BCH 0,0 SELW __ QSERVER QPGMR ASJ 0,0 EVTW A suivre... Paramètres ou commande ===> __________________________________________________________________________ F3=Exit F5=Réafficher F10=Relancer F11=Données intervalle F12=Annuler F23=Autres options F24=Autres touches
Un sous système coordonne un ensemble de travaux et leur environnement. Le lien entre un travail est spécifié dans la description du sous système ou établi par des commandes spécifiques. Mécanique générale:
QCMD
qui l'analyse et l'exécute.
Architecture d'un sous système (bases) ADDJOBQE ADDWSE ADDAJE _________ _________ ___________ | | ( ) | Travail à | | JOBQ | ( Ecran ) | démarrage | |_________| (_________) | Auto (ASJ)| | | |___________| ____|_____ ______|_______ | | | | | | | Batch | | Intéractif | | |________| |____________| | | | | | ________|_________ | | | | | |_____________| Sous Système |______________| |________________| | | ________|_________ ________ | WTR | / / | __________ | Gestionnaire | ___/_____/___ | |_______| d'imprimante |________| PRT | | OUTQ | |________________| | Imprimante | |________| |____________| STRPRTWTR
La description d'un sous système formalise ses liens avec différents points d'entrée pour les travaux.
Spécifie la mire d'écran utilisé pour l'ouverture d'une session intéractive.
La connection physique d'un écran est généralement prise en compte par
un mécanisme de configuration automatique, la configuration manuelle
est déconseillée.
Dans le cas d'écrans en émulation,
il est préférable de spécifier explicitement le nom de l'unité lors
de la configuration initiale (par exemple MAG25A
ou PAI12B
).
Pour des raisons de sécurité, la configuration automatique peut être
activée temporairement le temps de mettre en place de nouveaux écrans,
puis désactivée.
En général, tous les écrans sont reliés au sous système QINTER
en spécifiant sous forme de liens par types tous les modèles susceptibles
de se connecter (par exemple, type 3197
).
Des liens par nom d'unité permettent de relier des écrans spécifiques
à un sous système particulier. Il est toujours possible de changer dynamiquement
un travail -et donc un écran- de sous système, et certains progiciels
le font, mais l'opération est inutilement délicate.
Les postes file d'attente de travaux organisent les liens entre
JOBQ
et sous systèmes, et définit l'ordre d'enchainement
et le nombre maximum de travaux actifs par priorité et en globalité.
La notion de travaux actifs n'a pas ici la même signification
que pour un pool. Les travaux en file d'attente et libérés sont dans
un premier temps en attente d'exécution, à l'état de demande.
Ils avancent dans la file d'attente et deviennent actifs en fonction
des nombres maximum définis pour leur priorité et pour la JOBQ
.
A partir de ce moment seulement ils accèdent à un pool et commencent
à se dérouler. Les nombres maximum doivent être spécifiés pour éviter que des
travaux ne partent en exécution mais se retrouvent inéligibles.
Postes files d'attente de travaux Description de sous-système: QBATCH Etat: ACTIF No File Activ -------Maximum par priorité------- seq travaux Biblio maxi 1 2 3 4 5 6 7 8 9 5 PAIEQ QGPL 1 * * * * * * * * * 6 ERPPROQ MAXINFO 1 * * * * * * * * * 10 QBATCH QGPL 1 * * * * * * * * * 11 QBATCH1 QGPL 1 * * * * * * * * * 12 QBATCH2 QGPL 1 * * * * * * * * * 13 QBATCH3 QGPL 1 * * * * * * * * * 14 QBATCH4 QGPL 1 2 2 2 2 2 2 2 2 2 20 QS36EVOKE QGPL *NOMAX * * * * * * * * * 110 DKT01 QGPL 1 * * * * * * * * * 120 TAP01 QGPL 1 * * * * * * * * * A suivre... Appuyez sur ENTREE pour continuer F3=Exit F12=Annuler
La plupart des JOBQ BATCH
sont configurées pour exécuter les travaux un à un,
séquentiellement. Des travaux parallélisables peuvent être lancés
dans des JOBQ autorisant plusieurs travaux actifs simultanément,
mais des mécanismes de synchronisation doivent alors être mis en place.
Les JOBQ intéractives ou dédiées aux communications autorisent un nombre multiple de travaux à s'exécuter simultanément.
L'accès aux caractéristiques d'un travail est possible par
DSPJOB
WRKSBMJOB
, WRKACTJOB
,
WRKUSRJOB
puis option 5
OUTQ
)
JOBQ
)
Les historiques système peuvent être nettoyés automatiquement, mais le suivi des historiques utilisateurs est manuel.
Un travail commence au moment où il devient actif, et se termine après édition ou suppression de son dernier spoule.
Le système a été conçu pour limiter les opérations de chargement et
déchargement de programmes. Il est toujours possible
(sortie par RETURN
) qu'un programme appelé reste en mémoire
après la fin de l'appelant, bloquant des ressources ou l'impression
de certains spoules.
La commande RCLRSC
force la libération des ressources
pour les programmes d'une profondeur d'appel supérieure à son niveau.
Elle peut être incluse dans les programmes CL par sécurité après certaines
phases critiques d'un traitement.
Si elle est inopérante dans un environnement intéractif, la session
de travail doit être abandonnée par SIGNOFF
.
Les cas où des ressources restent bloquées après la fin d'un travail
sont très exceptionnelles. Dans le cas d'un problème lié à une connexion IP,
certains programmes refusent de se terminer, mais fermer la connexion suffit
pour terminer les travaux récalcitrants (go tcpadm
, puis
chercher dans les connexions actives).
Quelques rares autres cas peuvent se révéler bloquants et perturber
le fonctionnement de la machine, comme une défaillance d'unité
mal gérée. Il m'est arrivé une fois de devoir redémarrer suite à
un incident de ce type.
Les spoules (éditions) sont générés dans des files d'attente de sortie
(OUTQ
), et sont consultés par la commande WRKSPLF
.
Ils peuvent être créés avec un état Retenu (Held
),
ou immédiatement éditables.
Une imprimante est un Writer (WTR
), et peut être ou pas
reliée à une outq. Par défaut, le système crée pour chaque imprimante
une file d'attente en sortie qui lui est attachée.
Il est commode de rattacher une outq à une imprimante de manière
permanente, mais un rattachement temporaire reste possible.
L'outq cible d'une édition obéit aux priorités système, sous système, utilisateur, travail, programme ou explicite. Ceci permet une grande souplesse de gestion
une imprimante peut être démarrée -rattachée à une outq- par la
commande STRPRTWTR
selon différents modes
Les files d'attente de messages aboutissent à un utilisateur ou servent de mode de communication entre programmes. Quand un programme rencontre un cas d'erreur qu'il est incapable de traiter, il se termine et émet un message vers son appelant, lequel peut l'intercepter ou le faire suivre. En bout de route, les messages non interceptés aboutissent dans la file d'attente externe liée à l'écran demandeur ou celle de l'opérateur système.
Les messages d'information peuvent arriver immédiatement
et bloquer l'écran en attendant une action (mode *BREAK
),
ou comme un simple pictogramme en bas d'écran (mode *NOTIFY
).
Un sous fichier de messages reçoit les messages *INFO
de la file d'attente de messages du programme qui l'affiche.
Les messages qui s'affichent temporairement en bas d'écran
lors d'un traitement sont des messages *STATUS
envoyés vers la file d'attente *EXT
, et cet affichage
peut être neutralisé en fixant la valeur STSMSG
du travail
à *NONE*
s'il pénalise trop les temps de réponse
(écran déporté et faible débit).
Le langage de contrôle permet d'automatiser et de contrôler
le lancement de commandes avec utilisation de variable,
gestion branchements et des erreurs.
Le guide de saisie du source est celui utilisé pour la saisie
de commandes en ligne, complété par la possibilité d'accepter des variables.
Une fois compilé, un programme CLP
se comporte comme
tout autre programme.
Un programme CL ne peut pour lui même déclarer et lire qu'un seul fichier, et de manière lourde et peu performante. Toute gestion même peu complexe du contenu d'un fichier doit être déléguée à d'autres programmes, en RPG de préférence.
Les commandes intégrées dans un CL peuvent requérir des paramètres variables.
Les caractères de gestion d'invite déclanchent l'affichage de la commande
avec possibilité de saisie contrôlée de paramètres.
Un autre usage des paramètres d'invite est dans les Programmes de Substitution
d'Invite (POP
), abordés un peu plus loin.
F9
F9
,
les saisies sont admises,
la valeur par défaut est utilisée si rien n'est saisi
F9
,
les saisies sont admises, la valeur par défaut est utilisée
Les lignes saisies sont des commandes, dont l'invite est accessible par F4
.
Un CL
obéit à une structure type.
Les variables fichier sont automatiquement déclarées, les autres déclarations
doivent précéder toute autres instructions.
PGM (&var1 &var2 &var3) /* Paramètres du programme */ DCLF UNFICHIER /* Déclaration d'un fichier (déconseillé) */ DCL &var1 *char 10 /* Déclaration des variables */ MONMSG xxxnnnn /* Capture générale de messages */ ... commandes ... FIN: /* Etiquette */ ENDPGM
Un ensemble de commandes et opérateurs de manipulation de variables est disponible. Les ordres de structuration sont sommaires.
Manipulation de variables et débranchements dans un CLPCHGVAR Affectation de valeur à une variable %SST(&a pos long) Extraction de sous chaine !! ou *CAT Concaténation simple (variables alpha seulement) !< ou *TCAT Concaténation avec suppression des blancs de fin >! ou *BCAT Concaténation laissant un blanc de séparation '' Délimiteur. Doit être doublé pour apparaitre comme caractère +-/* Opérateurs arithmétiques = < > ! Opérateurs de comparaison (symboles) *EQ *LT *GT *NE *LE *GE Opérateurs de comparaison (mode texte) DO ... ENDDO Bloc d'instructions IF ... ELSE ... Conditionnement xxxxx: Etiquette GOTO xxxxx Branchement Boucles et pavés A gérer manuellement
La substitution d'invite permet de prérenseigner les paramètres
d'une commande lors de son affichage,
comme le font la plupart des commandes CHG
.
La principale difficulté de mise en oeuvre consiste à trouver de la
documentation sur le sujet.
Un programme de substitution d'invite est spécifié dans le paramètre
PMTOVRPGM
de la commande CTRCMD
.
Sa forme simple prend 2 paramètres
La chaine de substitution décrit la liste des paramètres à prérenseigner.
Un programme de substitution d'invite simple/* ------------------------------------------------------------- */ /* XTIMEINV: Programme de substitution d'invite sans KEYPARM */ /* Convient à toutes les commandes avec paramètre TIME */ /* Avec keyparm, devient pgm (&cmdn &parm1 ... &parmn &cmd) */ /* ------------------------------------------------------------- */ pgm (&cmdn &cmd) dcl &cmdn *char 10 /* Nom de la commande */ dcl &len *char 2 value(X'0020') /* 32 binaire, longueur passée */ dcl &cmd *CHAR 34 /* Chaine de substitution (32+2) */ dcl &time *char 6 RTVSYSVAL SYSVAL(QTIME) RTNVAR(&TIME) chgvar &cmd (&len !! '??TIME('!! &time !< ')' ) endpgmUne commande avec substitution d'invite
/* --------------------------------------------- */ /* XT: Commande avec substitution d'invite */ /* Compiler avec PMTOVRPGM(XTIMEINV) */ /* --------------------------------------------- */ CMD PROMPT('Test gestion invite') PARM KWD(TIME) TYPE(*TIME) PROMPT('Heure') PARM KWD(AUTRE) TYPE(*CHAR) LEN(10) PROMPT('Autre')
Les paramètres clé d'une commande, définis avec KEYPARM *YES
,
sont affichés avant les autres paramètres.
Si la commande ne comprend pas de paramètre clé,
la substitution d'invite est appelée avant le premier affichage.
Si des paramètres clé sont définis, un premier affichage est effectué puis
ils sont passés au programme de substitution qui peut les utiliser.
Lors du déroulement d'un traitement peuvent se produire des erreurs prévues
ou imprévues. La commande MONMSG
intercepte une erreur ou
une tranche d'erreurs en fonction de leur code, à l'exception
de rares erreurs non monitorables.
Les erreurs sont codifiées sur 3 lettres et 4 chiffres.
Les erreurs système sont codifiées CPFnnnn
MONMSG CPF
nnnn intercepte l'erreur CPFnnnn
MONMSG CPF
nn00
intercepte les erreurs CPFnn00 à CPFnn99
MONMSG CPF0000
intercepte toutes les erreurs CPF monitorables
Il existe quelques centaines de commandes et une approche rationnelle est de savoir les retrouver. Quelques commandes sont d'un usage très courant.
Il est possible de créer des commandes utilisateur présentant les mêmes caractéristiques que les commandes système. Une commande est simplement un masque de saisie évolué, capable de réaliser un certains nombre de contrôles. Elle ne réalise aucun traitement et envoie les paramètres saisis au programme qui lui est associé.
Un source de commande est de type CMD et composé de commandes
acessibles par GO CMDDEF
CMD
Définition du titre de la commandePARM
Paramètre de commande, ou référence à une liste de paramètresQUAL
Définition de paramètre qualifié (type bib/fichier)ELEM
Elément d'une liste de paramètresDEP
Relation de dépendance entre paramètresPMTCTL
Controle d'affichage conditionnel de paramètres
L'option de compilation 14
lance la commande CRTCMD
.
Il est nécessaire de spécifier le programme associé par F4
ou de le fixer après compilation par CHGCMD
.
Une aide UIM
peut être associée à la commande lors de
sa création.
La conception d'une commande utilisateur basique ne présente aucune difficulté si on s'inspire d'un modèle existant, comme FD
La gestion des sauvegardes impliquent des choix stratégiques allant jusqu'à la configuration de la machine.
Le mirroring fonctionne par dupplication des données sur plusieurs disques, telles quelles ou en utilisant des mécanismes de parité. La baisse du cout des disques favorise les solutions de dupplication simple, qui autorisent des remplacements de disque à chaud, sans arrêt du système ni reconstruction de données complexe. Ce choix est à faire lors de l'installation du système.
La journalisation concerne la base de données et aide à en assurer
l'intégrité. Elle est indispensable si on souhaite utiliser
les mécanismes de controle de validation COMMIT
/
ROLLBACK
.
CRTJRNRCV
,
avec une racine et un numéro d'incrément.
CRTJRN
et un récepteur
de journal lui est rattaché. La commande CHGJRN
permet de détacher le récepteur courant, d'incrémenter son suffixe
et d'attacher le récepteur suivant.
Le journal coordonne la succession des récepteurs et la recherche
d'information.
Les récepteurs détachés peuvent être sauvegardés et supprimés du disque
WRKJRNA
et DSPJRN
fournissent
toutes informations sur la description d'un journal et son contenu.
COMMIT
, les mises à jour
sont validées en bloc. Un ROLLBACK
, une défaillance
dans les traitements ou une fin de travail sans validation
rétablissent la base dans son état initial, avant toute modification.
RCVJRN
, à laquelle est attachée
un programme de traitement, lequel peut lui même filtrer
les entrées par fichier et sous traiter l'analyse de
chaque fichier intéressant à un programme spécifique.
La démarche peut s'avérer très intéressante pour suivre
en désynchronisé l'évolution du contenu d'un fichier
sur lequel on n'a pas directement la main (progiciels).
La sauvegarde sur disque s'effectue vers des fichiers de sauvegarde. Des disques ou partitions peuvent être réservés aux sauvegardes, afin d'être traités séparément en cas de nécessité de reformatage de disques lié à un crash.
Les sauvegardes impliquent un compactage et un reformatage des données et sont des opérations longues. La copie d'un fichier de sauvegarde sur bande est une opération très rapide.
Dans le siècle passé, vers les années 90, les supports de sauvegarde acceptaient de faibles volumes et l'utilisation de fichiers de sauvegarde tampons permettaient à l'opérateur de faire une copie sur plusieurs bandes de quelques centaine de MO le matin à son arrivée, alors que la sauvegarde avait tourné la nuit pendant plusieurs heures. Une cartouche de sauvegarde courante de 10 G contient les données de la plupart des entreprises, et un automate de chargement peut être utilisé pour les autres, permettant une écriture directe par une sauvegarde automatique lancée la nuit avec une durée courante de une à trois heures.
L'examen de quelques commandes et menus offre un panorama général sur les diverses possibilités.
Commandes de sauvegardeGO SETUP
Gestion des taches planifiéesGO BACKUP
Gestion des taches de sauvegardeWRKJOBSCDE
Gestion des travaux planifiésSAVLIB
Sauvegarde d'une bibliothèqueSAVOBJ
Sauvegarde d'objetsSAVCHGOBJ
Sauvegarde d'objets modifiés (incrémentale)
Les sauvegardes de bibliothèques sur une seule machine ne posent pas de problème. Quand des machines différentes sont utilisées des précautions doivent être prises
La sauvegarde système relève de concepts avancés.
Une solution correcte consiste à faire assez régulièrement
une sauvegarde système complète (SAVSYS
).
La démarche est assez conitraignante, le système doit être mis
en accès restreint.
En cas de changement de machine, un système ne doit JAMAIS
être restauré sur un autre système (RSTSYS
):
une machine réagit mal quand on force la description de ses
unités physiques essentielles (contôleurs de disques, unités
bandes, cartes de communication) à des valeurs qui ne correspondent
pas à la réalité. La commande RTVCFGSTS
permet
de récupérer le détail de la configuration (voir plus loin)
dans un source avec disques, écrans, cartes de communication et
autres. Il est assez facile de faire le tri pour savoir ce qui
doit être repris et ce qui doit être adapté,
mais les erreurs peuvent couter cher et procéder par étapes
est prudent. Pour de nombreux éléments, la reconfiguration
automatique permet de faire le ménage dans les structures périmées.
Après sauvegarde système, les restaurations peuvent être
sélectives, avec RSTUSRPRF
par example pour rétablir les
profils utilisateurs. Les utilisateurs doivent être rétablis avant
les autres objets pour que les droits ne soient pas perdus.
La commande WRKHDWPRD
donne accès à la liste des
matériels installés.
Le contrôle de la configurations est accessible par WRKCFGSTS
Distinguer les unités réelles de la description (suffixe "D
")
qui leur sert de modèle.
Différents niveaux sont à considérer
*LIN
, commande WRKLIND
- Niveau ligne
*CTL
, commande WRKCTLD
- Niveau controleur
*DEV
, commande WRKDEVD
- Niveau unité
*MODE
, commande WRKMODD
- Niveau Mode (pour une ligne)
PRTDEVADR
en précisant le contrôleur (souvent CTL01).
Les modems et écrans déportés doivent être configurés manuellement. Il convient de s'inspirer d'un modèle existant et de connaitre les quelques paramètres à adapter dans le maquis de l'existant. Penser à croiser les valeurs des identificateurs d'échange
Les AS400 s'inscrivent dans des réseaux IP. La configuration est assez simple, il suffit de savoir ce qu'est une adresse IP, un masque réseau, et de connaitre l'adresse d'un routeur. Ce qui suit suffit à un administrateur réseau pour configurer l'AS400 (après création de la ligne).
WRKHDWPRD
CRTLINETH
TCPADM
et TCPCGF
PING
sur localhost,
sur l'adresse de la carte, sur celle du routeur et
vers une adresse autre
Dans certaines configurations de réseau, en particulier avec des adresses de routeurs virtuels, des coupures de connexions peuvent intervenir.
Etablir la connexion directe d'un AS400 à internet requiert un sérieux audit de sécurité.
Client Access fournit une émulation Telnet améliorée, la possibilité de transférer des fichiers et de connecter des imprimantes micro en tant qu'imprimantes AS400.
La configuration par défaut ne spécifie pas de description pour la session et utilise unité virtuelle. Les unités virtuelles sont difficiles à localiser en cas de problème et cette approche est déconseillée.
Pour créer une nouvelle session Client Access:
ping monas400
depuis
une fenêtre DOS
PC21
PC21A
)
et la taille souhaitée pour l'écran (80 ou 132 colonnes)
PC21B
) et éventuellement la taille écran,
connecter et enregistrer sous...
Pour utiliser une imprimante PC comme imprimante AS400
ping monas400
depuis
une fenêtre DOS
LASER07
L'accès à d'autres systèmes IP est possible via TELNET
et FTP
.
L'AS400 est un serveur Web efficace et les programme Java
peuvent facilement accéder à ses données par JDBC.
Ce mode de connexion relève de règles de fonctionnement
relèvent d'une logique Java et Unix.
Le mode d'accès aux données conserve quelques spécificités.
La base de données doit être nommée au préalable, le nom de la base
est également utilisé par ODBC - voir DSPRDBDIRE
et WRKRDBDIRE
.
L'AS400 peut également être utilisé comme simple serveur de données via Client Access, en mettant à disposition des répertoires vers l'extérieur. Les assistants de configuration et d'accès Client Access (Operations Navigator) offrent des outils puissants pour gérer les machines connectées, les utilisateurs, les objets et leurs droits, les serveurs, le contenu des répertoires et de nombreux aspects du système.
Tout accès à la machine nécessite un mot de passe,
avec déconnection de l'utilisateur et de l'unité physique
concernée après un nombre d'échecs paramétrables
(3 en standard).
Un mot de passe peut être remplacé par un officier de sécurité
(droits *SECOFR
) mais aucun moyen n'existe pour le
retrouver s'il est perdu.
La perte du mot de passe de l'officier de sécurité
nécessite une intervention de la maintenance IBM
selon un protocole spécifique.
Certains procédés de connexion sont connus, mais difficiles à mettre en oeuvre : le mot de passe utilisé en dépannage de système pour un IPL bande est connu de tous les techniciens, mais donne des droits sur des procédures de très bas niveaux (reformattage des disques) et l'approche difficilement exploitable pour un hacker.
Les objets ne sont pas accessibles directement et rien n'est prévu dans les outils disponibles pour examiner le contenu des disques. Aucun moyen n'existe pour accéder aux objets non autorisés, encore moins pour savoir où sont stockés les utilisateurs et mots de passe.
Tout objet a un propriétaire et des droits associés. Les droits sur l'objet lui même sont distincts des droits sur ses données s'il s'agit d'un fichier.
La commade de gestion des droits sur un objet est
EDTOBJAUT
Un utilisateur appartient a un (seul) groupe d'utilisateur et possède les droits de ce groupe. Dans de nombreux cas, l'appartenance à un groupe suffit pour spécifier les droits d'un utilisateur nouveau.
Une liste d'autorisations associe des droits et des utilisateurs. Pour ajouter un utilisateur à un ensemble d'objets protégés par liste d'autorisation, il suffit d'ajouter l'utilisateur à la liste et évite l'inscription de l'utilisateur sur chaque objet.
La connexion via des postes clients implique souvent l'enregistrement de mots de passe dans des fichiers de configuration, parfois en clair, parfois sous la protection du système d'exploitation, laquelle n'est pas toujours totale. Certains mots de passe fournissent des droits étendus mais leur usage est limité pour bloquer toute ouverture de session interactive sur l'AS400 et réserver son usage à des programmes serveurs
Pour bloquer l'ouverture d'une session sur l'AS400 pour un utilisateur
*NONE
*SIGNOFF
Un autre problème peut venir de certains émulateurs configurés pour connexion avec l'utilisateur qui ouvre la session. Le système d'exploitation enregistre alors le mot de passe. Une approche peut permettre de se connecter sur la machine si l'utilisateur est sorti de l'AS400 mais l'écran est resté connecté:
Pour un démarrage manuel, le panneau comporte une clé, un interrupteur à bascule pour choisir le type d'IPL (Initial Program Load) et un bouton de validation. Le choix de l'IPL permet une prise en compte ou non des dernières PTFs chargées (Programs Temporary Fixes) et non installées définitivement.
Des démarrages à distance sont possibles, sur simple appel téléphonique
Une procédure courante consiste à programmer un démarrage ou un cycle de week end avec ménage, arrêt le samedi et redémarrage dans la nuit du dimanche au lundi. Il est préférable d'arrêter régulièrement une machine ou de ne jamais l'arrêter. Le redémarrage d'une machine qui n'avait pas été arrêtée pendant plusieurs mois peut se révéler problématique.
Les procédures de sauvegardes automatiques et de ménage présentent un ensemble d'options à examiner avec attention
Les menus ASSIST
, MANAGESYS
,
SETUP
et CLEANUP
, inventorient
les options courantes de maintenance.
Les incidents les plus courants s'analysent par l'intermédiaire
de l'historique du travail via WRKACTJOB
si le travail est encore actif ou consultation des spoules
de l'utilisateur qui l'a lancé s'il est terminé.
Pour des incidents plus complexes, il peut être nécessaire de
se référer à l'historique système par DSPLOG
Une assistance téléphonique par Point Services IBM peut fournir des solutions précieuses, à la mesure de son cout. Les modes de fonctionnement de l'assistance hard et soft sont parfois un peu déroutants, mais une solution est en général obtenue.
Dans une liste de travaux obtenue par WRKACTJOB
,
les travaux de groupe s'identifient par un +
en face du nom.
Un travail de groupe est constitué de plusieurs tâches
pouvant être interrompues pour passer de l'une à l'autre.
SETATNPGM
interrompt le travail en cours et appelle un menu
CHGGRPA
permet de transformer un travail en travail de groupe
TRFGRPJOB
permet de basculer d'un travail de groupe à un autre
*SIGNOFF
qui coupe brutalement l'ensemble des travaux.
La possibilité d'ouvrir plusieurs sessions en émulation limite notablement
l'intérêt des travaux de groupe
L'analyse d'un travail en cours doit prendre en compte toutes ses composantes.
La commande WRKACTJOB
donne accès à toute l'information
nécessaire.
Quand un programme tombe en erreur, un message est affiché.
Il est en général utile de consulter le détail du message et l'historique,
pour trouver les messages précédents, souvent significatifs, par F10
.
Deux débogueurs existent pour les programmes RPG: un débogueur en ligne de commande et un débogueur intéractif. Les commandes en ligne sont
STRISDB
: démarrage du débogueur intéractif
STRDBG
: démarrage du débogueur en ligne
DSPPGMVAR
: affichage du contenu d'une variable
ADDBKP
: ajout d'un point d'arrêt
RMVBKP
: suppression d'un point d'arrêt
Un développeur peut anticiper l'analyse d'anomalies par
un SETATNPGM QCMD
ou en définissant QCMD
comme
programme d'attention dans son profil utilisateur.
Ceci donne la possibilité d'obtenir à tout moment l'écran de saisie de commande
par la touche Echap
,
par exemple en cas d'arrêt programme, et de démarrer le débogage en ligne
alors que le programme est déjà lancé pour analyser précisément son état.
Patrick Larreya, 2001.