IBM i est le nouveau nom qui remplace I5/OS. Il est livré en version 7.1 et est disponible sur POWER5, 6 et 7 Nouveautés en matière de logiciels 5770SS1 il n'y a pas de conversion d'objet entre la 6.1 et la V7,par contre elle est bien sur nécessaire si vous passez directement de la V5R4 à la V7 les DVD sont livrés par groupe de langue. le notre(2928) est le groupe 1 contenant aussi la langue anglaise (2924) il y a un bug lors de l'installation : - si vous faites une installation automatique (IPL/D en mode normal), il faut impérativement installer au préalable : a/ SI38035 (V6R1) ou SI38038 (V5R4) b/ puis, lancer l'API QINSTLNG en lui passant comme paramètre '2928' |
Sinon l'installation se fera partiellement en langue 2924 (US), une partie des produits étant ensuite déclarée en erreur - si vous faites l'installation manuelle (IPL/D, manuel), vous devrez choisir la langue (2928) 5722UME implémentant le modèle CIM pour IBM Director était en version 1.2 5770UME implémente CIM en version 1.3 -> il implique PASE (5770/opt 33) et OpenSSL (5733SC1) -> les données sont converties au premier démarrage la version de SEU fournie par 5770WDS ne vérifie la syntaxe que pour la version 6.1, les nouveautés 7.1 et suivantes seront déclarées en erreur (utilisez plutôt RDI/RDP) Extended Integrated Server Support for IBM i ( 5761-LSV ) n'existe plus Il permettait une installation de VMware ESX on iSCSI (voir 5770SS1/ opt 29) et Save While Active pour partitions linux, qui disparait complètement. |
IBM Secure Perspective for IBM i - 5733-PS1 disparait. Performance Viewer Open Source Components - 5761-SS1 option 46 est désormais intégré à 5770SS1 / opt 3 le serveur IBMHELP (intégré à 5761SS1 / opt 3) disparait RDI7 n'est plus livré à partir du 11 Mai 2010, utilisez RDP à la place Zend Core n'est plus disponible, voyez : Zend Server Community Edition for i (version gratuite) ou Zend Server Support for i 5771-ZC1, contenant aussi Zend Plateform. |
la java toolbox (5733JC1) est désormais intégrée à 5770SS1 option 3 la V7.1, ne prend plus en charge les options JV1 pour Java Developer Kit versions 1.4, 5.0 et 6 (dites aussi "classic") Seule la JVM IT4J (tournant sous PASE) est désormais disponible la version par défaut est Java J2SE 6.0, 32 bits. IBM i 7.1 est la dernière édition qui prendra en charge la commande CRTJVAPGM, De toutes Façons, Le programme Java créé par cette commande est ignoré par IBM Technology For Java (IT4J). IBM System i Access for Wireless ( 5722-XP1 ) a été retiré, orientez vous plutôt vers IBM Director, à condition d'installer aussi 5770UME. ANYNET n'est plus supportés (mais fonctionne toujours ???) orientez vous plutôt vers Entreprise Extender (HPR) Les niveaux minimum pour WAS sur IBM i sont 6.1.0.29 et 7.0.0.7 |
Les modifications importantes sont les suivantes les commandes CRTCLMOD et CRTBNDCL(sources de type CLLE), incorporent désormais le source CL dans l'objet comme pour le CLP. Suppression des commandes WRKORDINF, RQSORDAST et WRKORDRQS sur CRTLINETH, le défaut du paramètre ETHSTD passe de *ALL à *ETHV2, en effet la plupart des cartes réseau livrées n'acceptent plus le trafic SNA. -Plusieurs zones des fichiers systèmes de référence croisées sont passées du type caractère à GRAPHIC avec CCSID 1200 (UTF-16) Attention aux applicatifs qui liraient directement les fichiers suivants QADBXREF, QADBFCST, QADBIFLD et les logiques : QADBXATR, QADBXDIC, QADBXFIL, QADBXLFI, QADBXLLB et QADBXLFN ainsi que les vues du catalogue : SYSROUTINES, SYSPARMS, SYSSEQOBJ et SYSTYPES |
-les procédures et fonction SQL (PL/SQL) ne peuvent plus avoir une variable ayant le même nom qu'un paramètre d'entrée. Vous recevrez SQL0590 -le type XML est nouveau (voir ce cours) et ne peut plus être utilisé comme User Defined Type (UDT), sauf à l'encadrer de guillemets ("XML") -si une fonction (UDF) a été déclarée NO SQL et qu'elle passe un ordre SQL (ce qui était accepté en 6.1), elle recoit aujourd'hui SQLCODE = -487 -si un groupe d'enregistrement contenait une erreur de mappage, en V6R1 un résultat était quand même retourné, excluant cette ligne en erreur. EN 7.1 vous recevrez suite aux message système CPF5035 et CPD4019 l'erreur SQL0802 (SQLCODE=-802, SQLSTATE='22003') et PAS de résultat l'option COLLATE_ERRORS à *YES dans QAQQINI permet un fonctionnement identique à la version précédente. |
-les avertissements ayant les valeurs suivantes pour SQLSTATE 01003 : valeur nulle éliminée pour un argument d'une fonction agrégée 01506 : un ajustement a été fait sur un champs de type DATE/HEURE afin de corriger un résultat invalide sont désormais envoyés aux applications. Il est donc possible sous ODBC ou CLI (PHP par exemple) de recevoir SQL_SUCCESS_WITH_INFO à la place de SQL_SUCCESS (SQLCODE = 0 dans les deux cas) -le type des valeurs assignées aux UDT lors des instructions UPDATE ou INSERT était mal vérifié lors de l'exécution d'une requête préparée. Il l'est désormais peut provoquer SQL0301. -les valeurs assignées aux type DATE/HEURE pouvaient être tronquées sans erreur (par exemple assigner 00:01:10.001 à une heure) en V6R1 en V7R1 vous recevrez SQL0180 ou SQL0181 |
-Une erreur de mappage ou de conversion de données (SQL0802 / 01565) est retournée si vous avez des fonctions table retournant des LOCATOR sur des BLOB/CLOB dépassant la longeur définie. ceci n'est vrai que pour les fonctions crées en version 7.1 Avant la longeur retournée était toujours de 2Go, quelque soit la longeur déclarée. vous recevrez aussi CPD5036 et CPF5029. -la troncature lors de la récupération d'une chaîne dans une variable pgm n'était pas toujours signalée (SELECT INFO / FETCH INTO) cela sera le cas désormais, SQLWARN(2) sera toujours renseigné et SQLSTATE '01004' peut être émis. |
L'api qpdReportSoftwareError (Report Software Error) requiert maintenant les droits *SERVICE. La commande APYJRNCHGX (Appliquer les modifications journalisées étendues) va disparaitre dans une prochaine version. QDFTJRN (journalisation automatique) ne sera plus utilisés dans une future version. Utilisez à la place STRJRNLIB Les grandes nouveautés système sont les suivantes + Profils utilisateurs paramètre USREXPDATE permettant d'anticiper la désactivation d'un utilisateur. USREXPDATE : *NONE pas de date d'expiration prévue *USREXPITV voir le paramètre suivant JJ/MM/AA indiquez une date d'expiration. USREXPITV : nbr de jours avant expiration du profil |
la nouvelle commande DSPEXPSCD permet de voir le planning d'expiration Planning de péremption de profils utilisateur Option Profil Date objet Nouveau utilisat péremption Action possédé propriét FORMATION2 15/09/10 *DISABLE FORMATION4 30/10/10 *DISABLE ---------------------------------------------------------------------------- la commande CHGEXPSCDE permet de modifier une de ces lignes Modifier planning péremption (CHGEXPSCDE) Indiquez vos choix, puis appuyez sur ENTREE. Profil utilisateur . . . . . . . USRPRF + si autres valeurs Date de péremption . . . . . . . EXPDATE date ou *NONE Action . . . . . . . . . . . . . ACTION *DISABLE/*DELETE |
SI vous modifiez ensuite l'utilisateur par CHGUSRPRF STATUS(*ENABLED) cela ne suffira pas, vous recevrez CPF2251 indiquant que la date d'expiration n'est pas valide. Pour réactiver le profil utilisateurF, vous devez aussi indiquer - une nouvelle date d'expiration utilisateur (USREXPDATE) - un intervalle d'expiration utilisateur (USREXPITV) - indiquer que le profil utilisateur n'expirera pas (USREXPDATE(*NONE)). + SAVE/RESTORE Fast Restore lors d'une sauvegarde sur bande, le fichier de sortie (si utilisé) contient une nouvelle colonne SROPSN contenant la "position" sur bande les commandes de restauration possèdent un nouveau paramètre POSITION qui peut contenir une position valide telles que celles lues dans le fichier de sortie.BRMS lui aussi reconnait ce paramètre. |
le paramètre SEQNBR doit alors être renseigné lui aussi. cette fonction accélère grandement les restaurations (jusqu'à 7 fois) Exemple : RSTOBJ OBJ(VINS) SAVLIB(BDVIN2) DEV(TAP01) OBJTYPE(*FILE) SEQNBR(3) POSITION(0000000000190490000000AB430009CA) La sauvegarde de QUSRSYS inclue maintenant la cde RTVSYSINF avec cette dernière en tant que cible pendant la sauvegarde. la PTF SI34094 apporte la même fonctionnalité en V5R40 SI34055 apporte la même fonctionnalité en V6R10. |
Nouvelle valeur pour ALWOBJDIF : *COMPATIBLE est équivalent à ALWOBJDIF(*AUTL *OWNER *PGP *FILELVL) et évite d'utiliser *ALL, qui renommait les anciens fichiers BD ou les anciens membres en xxx000001 si le format était différent avant de restaurer. cette nouvelle valeur, qui est la valeur par défaut admets les différences suivantes pour un fichier base de données : - différence de droits - de liste d'autorisation - de propriétaire - de PGP mais pas les différences de niveau de format pour les autres objets (non BD) *COMPATIBLE est identique à *ALL |
l'utilisation des options 21,22,23 et 40 des menus SAVE et RESTORE inclue maintenant les commandes suivantes ENDTCPSVR ENDHOSTSVR DLYJOB JOB(300) ENDTCP DLYJOB JOB(300) avant le lancement de ENDSBS SBS(*ALL) OPTION(*IMMED) le PTF SI35204 permet le même comportement en 6.10 Enfin les versions cibles supportées sont les suivantes : comme toujours n , n-1 et n-2, soit 7.1, 6.1 et V5R40 |
La commande STRJRNLIB admet de nouveaux paramètres : Filtre de journalisation, incluant la journalisation "remote" automatique ou non (CHGJRNOBJ pour modifier), par INHRULES Règles d'héritage: INHRULES Type d'objet . . . . . . . . . *ALL *FILE, *DTAARA , *DTAQ Opération . . . . . . . . . . *ALLOPR *CREATE, *MOVE, *RESTORE Action associée à la règle . . *INCLUDE *INCLUDE , *OMIT Images . . . . . . . . . . . . *OBJDFT *AFTER, *BOTH Omettre poste de journal . . . *OBJDFT *NONE, *OPNCLO Filtre de journaux éloignés . *OBJDFT *NO , *YES Filtre de noms . . . . . . . . *ALL *ALL ou un nom générique par exemple STRJRNLIB LIB(BDVIN1) JRN(BDVIN1/QSQJRN) INHRULES((*ALL) (*FILE *ALLOPR *OMIT *OBJDFT *OBJDFT *OBJDFT Q*)) journalise tous les objets (le premier *ALL), sauf les fichiers dont le nom commence par Q (deuxième ligne) |
Pour revoir ensuite ces paramètres utilisez DSPLIBD F10=Affichage des règles d'héritage : Affichage des règles d'héritage Bibliothèque . . . . . : BDVIN1 Type . . . . . . . . . : PROD Type Filtre Opérations Action Images Postes objet noms journalisées règle journal omis *ALL *ALL *ALLOPR *INCLUDE *OBJDFT *OBJDFT *FILE Q* *ALLOPR *OMIT *OBJDFT *OBJDFT F11=Afficher filtre journal éloigné, affiche : Bibliothèque . . . . . : BDVIN1 Type . . . . . . . . . : PROD Filtre Type Filtre Opérations Action Images journal objet noms journalisées règle journal éloigné *ALL *ALL *ALLOPR *INCLUDE *OBJDFT *OBJDFT *FILE Q* *ALLOPR *OMIT *OBJDFT *OBJDFT |
Point d'exit : (rappel-> visibles par WRKREGINF) un nouveau point d'exit QIBM_QSP_SECURITY vient compléter les règles de sécurité existantes concernant les spools, à savoir : 1/ l'utilisateur est *SPLCTL 2/ l'utilisateur est *JOBCTL et l'outq est paramétrée OPRCTL(*YES) 3/ l'utilisateur a les droits sur l'objet OUTQ lui-même. 4/ le spool appartient à l'utilisateur concerné. le point d'exit vient s'ajouter aux règles précédentes en ayant la possibilité de "forcer" un accord ou un refus d'accès à la fonction. cette fonction peut être une des commandes DSPSPLF, DLTSPLF, CPYSPLF etc. ou bien une des API QGSLRSC, QSPMOVSP, QSPOPNSP ou enfin la fonction d'exportation d'iSeries navigator. |
trois points d'exit peuvent être associés aux fonctions socket IP QIBM_QSO_ACCEPT permet d'indiquer un accord ou un refus de connexion IP entrante (sur le point d'être acceptée). QIBM_QSO_CONNECT permet d'indiquer un accord ou un refus de connexion IP sortante. QIBM_QSO_LISTEN permet d'indiquer un accord ou un refus de mis à l'état "listen" (écoute) d'un pgm de type service IP. SI le pgm d'exit refuse la connexion, cela peut engendrer l'erreur EPERM qui est nouvelle et peut avoir un impact sur vos routines existantes. |
WATCH la notion d'espion et les commandes associées (STRWCH / WRKWCH / ENDWCH) sont apparue en V540. il s'agit de soumettre un JOB à l'écoute de l'arrivée d'un message avec réception d'informations sur ce message pour traitement. les nouveautés 7.1 sont les suivantes : on peut être l'écoute sur un message prédéfini (comme avant) un groupe de message (CPF12*) et un message impromptu (non défini dans un MSGF) on peut établir un filtre sur le type de message et/ou le code gravité la commande ENDWCH admet un nom générique ou *ALL deux nouvelles API sont disponibles - QSCRWCHL liste les espions actifs - QSCRWCHI retourne les propriétés d'un espion |
Les versions 6.1 et 7.1 proposent un nouveau produit (non facturable) : 5761TS1 / 5770TS1. Ce dernier propose en 6.1 qu'un PRTF génère un fichier dans l'IFS plutôt qu'un spool OVRPRTF QPDSPLIB DEVTYPE(*AFPDS) TOSTMF('/tmp/test.pdf') WSCST(*PDF) La PTF SI43471 apporte de nouveaux paramètres à la commande CPYSPLF permettant une transformation d'un spool existant . CPYSPLF QPDSPAJB TOFILE(*TOSTMF) TOSTMF(/temp/wrkactjob.txt) CPYSPLF QPDSPAJB TOFILE(*TOSTMF) TOSTMF(/temp/wrkactjob.tif) WSCST(QSYS/QWPTIFFG4) CPYSPLF QPDSPAJB TOFILE(*TOSTMF) TOSTMF(/temp/wrkactjob.pdf) WSCST(*PDF) |
Modifications apportées par des PTFs : Après SI44398 l'affectation d'une valeur décimale à une zone *INT n'est plus arrondie. Après SI51169 la restauration d'un logique sur un fichier physique ayant un format différent de celui mémorisé s'effectue avec ALWOBJDIF(*COMPATIBLE), avant cela provoquait une erreur. SI46750 et SI46764 changent SQLTABLEPRIVILEGES qui retourne désormais le droit INDEX (équivalent au droit *CHANGE) SI50306 modifie le fonctionnement de l'instruction MERGE désormais les triggers UPDATE, DELETE, INSERT sont appelés à chaque ligne insérée, détruite ou mise à jour. SF99701 level 18 maintient les catalogues à jour pour les procédures, aussi lors des commandes CRTDUPOBJ, CPYLIB, RNMOBJ et MOVOBJ |
WorkLoad Capping (plafonnement de la charge de travail) Pour ceux d'entre vous qui ont activé plusieurs coeurs, il est possible maintenant de limiter le nombre de processeurs utilisés par sous système (V7R1 + SI39795) : Passez la nouvelle commande ADDWLCGRP WLCGRP(GROUPE1) PRCLMT(1) Associez un produit à ce groupe par ADDWLCPRDE WLCGRP(GROUPE1) PRDID(5770xxx) LICTRM(*ALLINS) FEATURE(*ALLINS) Créez une Data Area CRTDTAARA DTAARA(QSYS/QWTWLCGRP) TYPE(*CHAR) LEN(2000) VALUE(QBATCH GROUPE1') Placez ainsi des couples (sous-système/groupe cadrés sur 20 c.) Quand vous démarrez le sous-système vous devez voir CPI146C : "Subsystem QBATCH is using workload group GROUPE1" La commande CHGJOB possède un nouveau paramètre WLCGRP |
Deux nouvelles API pour zipper/dézipper des fichiers (MF99003) + QzipZip zip un fichier ou un répertoire - chemin à zipper (structure, voir l'exemple) - chemin résultat (idem) - format (ZIP00100) - options - structure d'erreur commune aux API cette API permet de zipper un fichier ou un répertoire entier le résultat doit contenir le fichier zip à créer. + QzipUnzip dézippe un fichier - fichier à dézipper - répertoire résultat - format (UNZIP100) - options - structure d'erreur commune aux API |