Nouveautés et différences de la V5R30. + Commençons par voir ce qui n'existe plus : - Options de logiciels sous licence > 5722SS1 option 4 (migration 36/38 et l'assistant associé) > 5722WDS options 22 et 23 ADM / ADS (les options 4 et 5 de PDM) > 5722WSV intégration avec Windows NT4(fin de support de NT4 sur FSIOP) > 5722RGZ Service Agent qui devient partie intégrante de l'OS > 5722DG1 : serveur WEB d'origine (celui d'IBM, seul reste Apache) > 5722JV1 option 3 (jdk 1.2) et 4 (jdk 1.1.8) et les classes RAWT. ................................................................. : ATTENTION à modifier la configuration de TOMCAT pour jdk 1.3 : :...............................................................: |
- Les protocoles ATM et RNIS, gérés directement par l'OS/400 et toutes les commandes ou les paramètres associés (reste Frame Relay) - STRTCPSVR pour *DCE et *NSMI (Network Station) - les programmes de service QXML4C310 et QXML4PR310 (XML parser) disparaissent au profit d'un logiciel sous licence (facturable) - WebSphere Host Publisher n'est plus livré avec Client Access Family - Operation Console ne s'installe plus sur Windows 98/Me. + installation de la version - commander les dernières PTF, 8/10 jours avant. (commander la SF99530 implique maintenant la dernière DATABASE et le dernier groupe HIPER). - Si vous installez la mise à jour V5R30 par le biais des catalogues d'images, installer Si10553 (V5R2) ou SI10563 (V5R1) |
Vous devez impérativement passer au préalable par l'option 5 du menu LICPGM 1/ pour accepter les licences par avance 2/ pour attribuer un espace supplémentaire au microcode .......................................................................... : Opt texte descriptif : : Gestion des logiciels sous licence - Edition cible : : Gestion des logiciels sous licence à supprimer : : Liste des logiciels sous licence non trouvés sur le support : : Logiciels sous licence de l'édition cible : : > Gestion des contrats de licence logiciels : : Gestion des profils utilisateur : : Vérification des objets du système : : Espace nécessaire estimé pour ASP système : : > Attribuer un espace supplémentaire pour le microcode : : Conserver configuration disque : :........................................................................: ou bien l'API : CALL PGM(QLPALCSP) PARM('V5R3M0' '1') [V5R4M0 si 5.2->5.4] |
+ Différences importantes - passer la plupart des fichiers en sortie (OUTFILE) en LVLCHK(*NO) - le système ne va plus utiliser *LIBL pour passer des commandes mais *NLVLIBL (QSYS28xx) ou *SYSTEM (QSYS) pour les trouver. L'API QCARPLCM sur le point d'exit QIBM_QCA_CHG_COMMAND annule cela. - Profil en cours Les API QSYGETPH et QSYGENPT (la première permet de changer le profil en cours du JOB) doivent utiliser les paramètres longueur et CCSID Le profil en cours est maintenant noté sur chaque message, s'il est différent du profil du JOB, ce qui peut faire grossir les MSGQ. Il est noté en tant qu'émetteur pour tous les messages envoyés depuis Opération navigator. |
- les routines QSPGETF/QSPPUTF, vont disparaitre à la prochaine version - Collectes et analyses de perf. Pour un système partionné, les consommations UC étaient données sur une base de 100% du(des) processeur(s) virtuel(s). Ainsi,si vous aviez assigné 40% de processeur, une pseudo tâche ( HVPLTASK) représentait les 60 % réservés aux autres partitions. Ceci n'est plus vrai, la V5R30 vous montre une consommation basée sur 100 % DE LA PARTITION (soit 40 % du processeur), HVPLTASK disparait. - Le client SNTP modifie maintenant l'heure système ainsi que les API adjtime() et settimeofday().Pour un fonctionnement comme en V5R20 créer une DataArea " QUSRSYS/QTOTSNTP *CHAR 9 value('*SOFTWARE') " - SI vous utilisiez des stratégies QOS en V5R1/R2, elles doivent être converties (lancez l'éditeur de règle qui vous signale une mise à jour,sauvegardez) |
- la liste des logiciels n'est plus publiée dans le serveur LDAP. Ce dernier n'est plus livré avec un IBM Secure Way Directory, mais s'administre avec un navigateur (il faut WAS Express) La configuration se fait toujours depuis Op.Navigator mais doit être être actualisée (comme QOS). - Gestion centralisée. le travail QYPSSRV (un des deux travaux de Gestion centralisée) n'existe plus. Le travail QYPSJSVR reste seul et prend tout à sa charge. la configuration (avant stockée dans QUSRSYS) est maintenant dans deux bibliothèques: QMGTC et QMGTC2 (un transfert a lieu lors de l'install) Ces deux bibliothèques sont sauvegardées par SAVLIB *ALLUSR|*NONSYS |
- Sauvegarde SAVSYS est admis en BATCH (QCTL uniquement) ! le sous système QCTL admet UN job batch quand le système est à l'état resteint, permettant l'exécution d'un CL avec ENDSBS *ALL puis SAVSYS. il faut pour cela indiquer un temps d'attente avec BCHTIMLMT sur ENDSBS SAVLIB *ALLUSR et SAVLIB *NONSYS, sauvegardent les bibliothèques dans un nouvel ordre : QSYS2, puis QGPL/QUSRSYS et enfin QSYS2xxx (IASP) si vous demandez une sortie fichier avec INFTYPE(*MBR), il sera généré une nouvelle ligne,par fichier, où le nom du membre est à blanc. les sauvegardes en mise à jour SAVACT(*SYSDFN) et SAVACT(*LIB) sont maintenant identiques. IBM préconise toujours SAVACT(*SYNCLIB) |
- la valeur système QSAVACCPTH est utilisée sur la plupart des commandes de sauvegarde [ SAVLIB ... SAVACCPTH(*SYSVAL) ] le paramètre DTACPR permet d'indiquer le niveau de compression, lorsque la sauvegarde a lieu sur unitée optique ou vers un SAVF. *LOW (compression de base) | *MEDIUM (algorithme TERSE) | *HIGH (LZ1) RSTLIB SAVLIB(*ANY) restaure la première version de toutes les bibliothèques présentes sur la bande. - le compilateur C subit de nombreuse modifications - la commande CRTPGM a une nouvelle valeur par défaut pour ACTGRP( ) *ENTMOD, indiquant de faire référence au module d'entrée : si celui-ci est RPG, COBOL, CLLE *SNGLVL (V4) ==> QILE si celui-ci est RPG, COBOL, CLLE *TERASPACE(V5) ==> QILETS !!! sinon (compilateur C) ==> *NEW, qui était la valeur V5R2. |
- Fichiers IFS la conversion de / , /QopenSys, et des systèmes de fichiers UDFS, en *TYPE2, qui était optionnelle en V5R2 (cde CVTDIR) est automatique et réalisée suite l'installation de la version. la commande CVTDIR OPTION(*CHECK) permet de voir si elle est en cours. ................................................................ : Attention cette conversion risque de bloquer sur les objets : : *NWSD actifs, mettez les VARY OFF, pendant la conversion. : :..............................................................: il existe un nouvel attribut pour les répertoires, *RSTDRNMUNL qui restreint le droit de renommer et "dé-linker" (détruire) au propriétaire ou à un profil ayant *ALLOBJ.(équivalent à S_ISVTX /Unix) Cet attribut est mis à *YES (mais ce modifie par CHGATR) pour /var , /QopenSys, /QopenSys/var/preserve et /tmp. Sur ce dernier (/tmp) cela empèche un bon fonctionnement de l'activité MSF et SMTP, passez le à *NO |
La version 5.2 apportait un utilitaire Rfile pour manipuler les fichiers OS/400 (Database et fichier source) Rfile -h affiche l'aide -r lit un fichier DB2 ou source et écrit dans STDOUT -w écrit dans un fichier DB2 ou source ce qui vient de STDIN -a peut alors etre utilisé pour travailler en ajout (replace/dft) -l ne pas tronquer les données longues mais éclater sur plusieurs lignes. autre options : -b flot de données binaire (sinon texte avec retour chariot) -Q les coordonnées du fichier sont indiqué en format OS/400 (sinon IFS = /QSYS.LIB/MABIB.LIB/FICHIER.FILE/MEMBRE.MBR) -c commande CL à passer avant le traitement (OVRxxx admis) -C commande CL à passer après le traitement la V5R30 propose catsplf pour écrire un spool vers STDOUT catsplf -j n°job/user/nom-job nom-du-spool n°spool catsplf -j 123456/QSECOFR/DSP02 QSYSPRT 1 > /tmp/spool.txt |
- CPYFRMIMPF avant, la copie d'un fichier stream vers un ficher PF avec CCSID=65535 était possible, on assumait le fichier dans le CCSID du JOB. maintenant cela va provoquer des données illisibles (en EBCDIC) --> voir l'APAR II13784. pour modifier le CCSID d'une zone vous pouvez utiliser iSeries navigator ou ALTER TABLE SQL : ................................................................. : ALTER TABLE matable ALTER COLUMN mazone SET DATA TYPE : : CHAR(nn) CCSID 297. : :...............................................................: la chaîne x'00' (zéro héxa) n'est admise lors de la copie que vers une zone binaire (type H en SDD) |
le paramètre RCDDLM, permettant de préciser le caractère de fin de ligne admet maintenant *ALL, qui indique la recherche des caractères "retour chariot" et/ou "fin de ligne" dans n'importe quel ordre. Autres différences - lors de l'exportation, un zero héxa X'00' était ajouté en fin de ligne avec RCDDLM(*EOR) en V5R20. en V5R30, Malgrès ce qu'indique l'aide, qui sera modifié en V5R4, on n'ajoute plus de X'00 en fin de ligne. - L'importation d'un fichier vide par CPYFRMIMPF avec MBROPT(*REPLACE) engendre CPF2869 - enfin lors d'une importation et avec le format DTAFMT(*FIXED), les enregistrements doivent avoir la longueur exacte (avant ils étaient complétés par des espaces), sinon vous recevrez le message CPF2845. Vous pouvez aussi recevoir le même message si les indications de nullité sont manquantes dans le fichier stream. |
- JVM La création de plusieurs JVM dans le même travail, n'est plus autorisée par l'API JNI-createJavaVM.Cela provoque le message JVAB55C. D'ailleur la nouvelle commande GENCMDDOC, envoi ce message à la deuxième utilisation, avant la PTF SI14493. - Fonctionnement DB2. un DELETE SQL, sans clause WHERE, et hors controle de validation utilise maintenant CLRPFM (une seule ligne dans le récepteur). la jointure et les vues acceptent maintenant 256 fichiers FRCACCPTH(*YES) ne provoque plus l'écriture disque forcée de cet index (I/O disque supplémentaires) mais rend ce chemin d'accès candidat à une journalisation par SMAPP (EDTRCYAP). ce paramètre sera abandonné à la prochaine version. |
- Fonction journal la paramètre MNGRCV est maintenant par défaut à *SYSTEM (pour les nouveaux journaux, uniquement) le changement de récepteur est fait à l'IPL ! IBM conseille d'indiquer plutôt *CURCHAIN que *CURRENT au paramètre RCVRNG des commandes du journal (DSPJRN, RCVJRNE, ...) le paramètre THRESHOLD de la commande CRTJRNRCV passe de *NONE à 1,5 Go l'élément Membre du paramètre OBJ de APYJRNCHG passe de *FIRST à *ALL, le paramètre CMTBDY de *NO à *YES. |
Quand un objet ne peut être traité par la commande APYJRNCHG, la commande ne s'arrete plus avec le NOUVEAU paramètre OBJERROPT à *CONTINUE (val/dft), mais l'objet est exclus du traitement. (la valeur *END, permet de fonctionner comme avant) Journalisation automatique -------------------------- Quand on créé une table, s'il existe une data area QDFTJRN contenant les coordonnées d'un journal, la table est automatiquement journalisée structure de la DataArea 1-10 : nom de la bibliothèque 11-20 : nom du journal 21-25 : *FILE -> journalisation automatique *NONE -> pas de journalisation |
- Droits APYJRNCHG impose les droits *OBJEXIST sur tous les objets concernés. pour utiliser le paramètre PWDRQD de la commande CHGDDMTCPA il faut les droits spéciaux *IOSYSCFG + *ALLOBJ + *SECADM (avant *IOSYSCFG) pour supprimer la Remote DataBase *LOCAL, il faut les mêmes droits. Toutes les commandes du menu SECTOOLS (le Security ToolKit) sont maintenant livrées avec *PUBLIC à *USE (avant *EXCLUDE), mais impliquent le droit spécial *AUDIT. un nouvel enregistrement "K" de type AF sera stocké dans le journal d'AUDIT, pour chaque droit spécial non vérifié. les messages CPF2220, CPF2246 et CPF4AAE ne sont plus placés dans QHST. |
- Valeurs système : QUTCOFFSET et QTIMZON QTIMZON indique le fuseau horaire local (nouveau type *TIMZON) la commande WRKTIMZON les montre, CRTTIMZON en créé un nouveau. Cet objet indique a/ le décalage local avec GMT b/ les dates de changement d'heure hiver/été le changement est automatique avec ce message dans l'historique systeme ID message . . . . . . : CPD1689 Date d'envoi . . . . . : 27/03/05 Heure d'envoi . . . . : 03:00:00 Message . . . . : L'heure du système local a été réglée. Cause . . . . . : L'heure locale du système a été réglée de sorte à utilise un décalage de 120 minutes par rapport à l'heure UTC à cause du code rais 1. Les codes raison et leurs significations sont les suivants : 0 - Voir les messages précédents. 1 - Un changement d'heure (passage à l'heure d'été/d'hiver) a eu lieu. 2 - Le fuseau horaire actuellement utilisé par la valeur système QTIMZON a changé. |
Il existe ainsi Trois objets pour l'Europe, le notre est QP0100CET2 --> en cas de conflit QTIMZON prime sur QUTCOFFSET. En V5R10,R20, QUTCOFFSET était utilisé par Gestion Centralisé. Ce n'est plus le cas. Par contre Java utilisait, pour calculer l'heure : 1/ un fichier SystemDefault.Properties dans /QIBM/UserData/java400 (contenant en France "user.timezone=Europe/Paris") Ou 2/ un objet *LOCALE avec LC_TOD de renseigné, et indiqué dans QLOCALE |
si ce paramétrage existe (cas d'une migration) il prime sur QTIMZON sinon, Java utilise QTIMZON qui devient la seule source d'information Si vous souhaitez préparer la valeur attribuée à QTIMZON AVANT la V5R30 créez une DATA AREA QWCTIMZON dans QSYS (type *CHAR, lg 16) et placez dedans "+01:00QP0100CET2" (+02:00 en été) Vous pourrez aussi renseigner ce paramètre sur l'écran d'IPL manuel. dans une prochaine version QUTCOFFSET sera en lecture seule QTIMADJ, contient le nom de l'application chargée de la maintenance de l'heure (IBM propose QIBM_OS400_SNTP) charge à chaque application de ne PAS modifier l'heure si elle n'est pas déclarée ici responsable de ce travail. |
QDATETIME, nouvelle valeur système contenant DATE et HEURE vous pouvez continuer à lire QDATE et QTIME séparément, mais modifiez plutot QDATETIME. QSPLFACN indique si le travail doit rester dans les tables systèmes une fois terminé, s'il a produit des spools. *KEEP : fonctionne comme avant, le travail reste dans les tables système à l'état OUTQ, quand il est terminé s'il a produit des spools non édités. *DETACH même si le travail a généré des spools, il disparait des tables système. .................................................................... : : : ATTENTION le spool n'est plus accessible par WRKUSRJOB / WRKJOB : : mais uniquement par WRKSPLF / WRKOUTQ. : :..................................................................: |
ce paramètre existe aussi sur une JOBD et au niveau de chaque travail la JOBD renvoi à la valeur système, et le travail à la JOBD sauf CHGJOB. QAUDLVL2 la valeur système QAUDLVL, n'est plus seule et est complétées par QAUDLVL2 ................................................................. : Rappel, il s'agit d'indiquer les actions système devant etre : : auditées (tracées) dans le journal QAUDJRN. : :...............................................................: la valeur *AUDLVL2 dans QAUDLVL indique que des valeurs supplémentaires sont indiquées dans QAUDLVL2 (sinon QAUDLVL2 n'est pas "lue" par le système) |
valeurs admises dans QAUDLVL2 valeur signification *NETBAS règles IP, connexion socket *NETCLU gestion des clusters *NETFAIL ports IP non disponibles *NETSCK activité sockets, DHCP; filtrage SMTP *NETCMN =*NETBAS + NETCLU + NETFAIL + NETSCK *SECCFG modifications de sécurité *SECDIRSRV modification de sécurité dans un annuaire [LDAP] *SECURITY les deux précédents, plus quelques autres ( le fichier de sortie reste QASYAFJE pour DSPJRN. ) |
Une gestion automatique des inscriptions EIM peut etre faite directement avec la création du profil utilisateur. EIM pose les bases d'un SINGLE SIGNON, il utilise KERBEROS et LDAP. 1/ on enregistre les serveurs de l'entreprise. 2/ on enregistre chaque utilisateur sous un ID EIM. 2/ on associe à chaque ID EIM, un profil par serveur. la commande CRTUSRPRF permet d'associer à un utilisateur OS/400 un ID EIM existant ou à créer (DLTUSRPRF permet de supprimer cette association) CRTUSRPRF USRPRF(TEST1) EIMASSOC(TESTUN *TGTSRC *ADD *CRTEIMID) 1/ ID EIM à associer au profil OS/400 2/ type : *TARGET (cible), pour un utilisateur se connectant à l'AS *SOURCE (source) pour un utilisateur cherchant à sortir *TGTSRC (les deux) 3/ *ADD | *REPLACE : ajout ou remplacement de l'association (profil/ID) 4/ *CRTEIMID | *NOCRTEIMID: création de l'ID, si besoin. |
Nouveau point d'exit (WRKREGINF) QIBM_QDB_OPEN le pgm d'exit associé (option 8 sous WRKREGINF) est lancé à chaque utilisation d'un fichier PF ou LF. il doit recevoir deux paramètres : - un structure décrivant les fichiers manipulés au format DBOP0100 (voir ci dessous) - une zone binaire sur 4 octets (10 chiffres) à renseigner avec : 0 si vous refuser la manipulation de ce fichier 1 si vous l'acceptez le pmg d'exit n'est pas lancé pour un fichier de QTEMP. En cas de plantage du programme ou de problème (non autorisé au pgm...) le système place un message dans l'historique et CONTINUE ! |
+ format DBOP0100 - BIN(4) taille de cette entete - CHAR(8) format (DBOP0100) - BIN(4) Offset pour accèder à la liste des fichiers (a) - BIN(4) nombre de fichiers dans la liste (b) - BIN(4) taille de la liste - CHAR(10) Job - CHAR(10) Profil - CHAR(10) N° de Job - CHAR(10) Profil en cours - CHAR(*) réservè (utiliser l'offset vue plus haut) + Structure concernant un fichier (repétée X fois) il faut accèder à cette structure en utilisant l'info en (a) de l'entete et boucler autant de fois qu'indiqué en (b). voir le détail ci-dessous : |
- CHAR(10) nom du fichier - CHAR(10) bibliothèque - CHAR(10) membre - CHAR(2) réservé - BIN(4) type de fichier 0 = PF / 1 = LF - BIN(4) fichier sous jacent 0 = non, le nom de fichier est celui manipulé 1 = non, le nom de fichier est sous jacent du fichier manipulé (logique, vue etc..) - CHAR(1) ouverture pour INPUT, 0=non / 1=oui - CHAR(1) ouverture pour OUTPUT, 0=non / 1=oui - CHAR(1) ouverture pour UPDATE, 0=non / 1=oui - CHAR(1) ouverture pour DELETE, 0=non / 1=oui - CHAR(*) réservè |
quelques remarques : La doc précise que l'ajout du pgm d'exit n'a pas d'incidence sur les jobs déja actifs, pourtant sur nos tests, l'effet fut immédiat sous SQL. l'accès à un fichier DDM ne lance pas le programme (mais il le lance sur la machine cible, si elle en possède un) il s'agit donc des accès locaux : SQL, interactif , dans les programmes, ODBC/JDBC les Entrées/Sorties natives meme DSPPFM lance le programme (mais pas CLRPFM) Quand vous tentez une opération interdite, vous recevez SQL0952 avec le code raison 11 (l'aide ne possède que 10 codes !) |