Pause-Café Volubis

pause-café

rendez-vous technique
Pause-Café est une réunion technique
destinée aux informaticiens sur plateforme IBM i.
Elle a lieu 3 fois par an : en général en Bretagne et sur Paris.

Pause-café #90

Octobre 2022
Le 20 octobre avec les clubs Pays de Loire et Bretagne

IBM i 7.5 - 7.4 TR6

Généralités

Disponible depuis le 10/05/2022

Rappels

Le rythme actuel des versions est d'environ 3 ans, avec 2 TR par an.

Vous pouvez mettre à niveau depuis la version n-2 (de 7.3 à 7.5 par exemple).

2 versions sont maintenues en concurrence. L'arrêt de la maintenance de la 7.3 est annoncé au 30/09/2023. Les TR ne sont désormais plus disponibles pour la 7.3


Références

Support

IBM i 7.5 n'est supporté qu'avec les serveurs Power 9 ou Power 10.

Support

Hardware : plateforme (initialement)

  • IBM Power S1014 (9105-41B)
  • IBM Power S1022 (9105-22A)
  • IBM Power S1022s (9105-22B)
  • IBM Power S1024 (9105-42A)
  • IBM Power L1022 (9786-22H)
  • IBM Power L1024 (9786-42H)

I/O

  • New Enterprise NVMe U.2 Devices
  • #EJ2A -- PCIe4 x16 to CXP Converter adapter
  • #EJ1X -- Storage Backplane with four NVMe U.2 drive slots
  • #EJ1Y -- Storage Backplane with eight NVMe U.2 drive slots

Licensing

IBM fait évoluer la gestion des licences pour plus de souplesse.

Simplification

Certains produits sous licences sont désormais inclus dans la licence IBM i (vous n'avez plus besoin de payer en plus)

Détail https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=%2Fcommon%2Fssi%2Frep_ca%2Fn%2F322-406WWEN%2Findex.html

On remarque DB2 Symmetric Multiprocessing ! 

Abonnement

IBM i est disponible en abonnement mensuel

Cette annonce est rétroactive ! Donc disponible à partir de la 7.1

Voir le détail https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=%2Fcommon%2Fssi%2Frep_ca%2Fn%2F322-406WWEN%2Findex.html


Pour l'abonnement mensuel :

Une lettre d'intention IBM annonce le support sur d'autres types de serveur !


Au final, vous pouvez disposer de licence IBM i :

  • Perpétuelle
  • Par l'abonnement mensuel
  • As a Service (Cloud - IBM Power Virtual Server)

IBM annonce un abonnement matériel + IBM i + support :


Pour rappel, Virtual Serial Number pour les P9 et P10 https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/7/897/ENUS122-017/index.html

Toutes ces annonces vont dans la direction du cloud ! 


OS

Sécurité

Niveau de sécurité : QSECURITY

Le niveau 20 est désactivé :

  • Lors d'une installation vierge : non utilisable, niveau 30 minimum
  • Lors d'un upgrade : vous restez en niveau 20
  • Si vous êtes déjà en niveau >= 30 : vous ne pouvez plus passer en niveau 20

Vous devriez être en niveau 40 !


Niveau de mot de passe : QPWDLVL

Nouvelle valeur 4

Permet un cryptage SHA-2 512 bit

Rappels :

  • Niveaux 0/1 : DES
  • Niveau 2/3 : SHA-1

Niveau de mot de passe SST : commande CHGSSTSECA

Nouvelle valeur 3

Permet un cryptage SHA-2 512 bit


Profils SST

Suppression des profils 11111111 et 22222222

Profils fournis :

  • QSECOFR
  • QSRV (désactivé par défaut)

L’upgrade vers 7.5 supprime ces profils

  • Vous pouvez les recréer … mais il est recommandé de ne pas le faire

Si QSECOFR a un mot de passe par défaut

  • Vous devrez le changer à l’installation

Connexion

Un message générique

Ne donne plus d'informations (profil inexistant ou mauvais mot de passe)


Commande CRTUSRPRF

Mot de passe par défaut

Changement de valeur par défaut pour le paramètre PASSWORD : passe de *USRPRF à *NONE

Mot de passe par défaut

Possibilité de gérer le nombre maximum d'ouvertures de session profil par profil


NetServer

Protection par liste autorisations

  • Connexion au serveur
  • Spécifique à chaque partage


Nouveaux points d’exit

Permettent de tracer l’ouverture et la fermeture de fichiers de l’IFS

  • QIBM_QP0L_OBJ_OPEN
  • QIBM_QP0L_OBJ_CLOSE

Ajouter un programme d'exit :

ADDEXITPGM   EXITPNT(QIBM_QP0L_OBJ_OPEN)
             FORMAT(OBOP0100)
             PGMNBR(1)
             PGM(PLB/PGMIFS)
             THDSAFE(*YES)

Remarques

  • Les noms de fichier sont en UCS2
  • Pour être analysé par le point d’exit vos fichiers doivent avoir l’attribut *RUNEXIT
  • Cette information n’est pas encore disponible dans la vue QSYS2.IFS_OBJECT_STATISTICS

Droits *PUBLIC

Changement des droits *PUBLIC de *CHANGE à *USE pour de nombreux objets système (liste complète dans le mémo to user)

Bibliothèques concernées :

QSYS, QGPL, QUSRSYS, QUSRTOOL, QGDDM, QGY, QIDU, QIWS, QPDA, QRJE, QSYS38, QSMU, QSVMSS, QSOC, QSR, QSYS2, QSSP, QSYSV7R3M0, QSYSV7R4M0, QSYS29xx

Types d'objets concernés :

*LIB, *FILE, *CLS, *CMD, *DTAARA, *JOBD, *MENU, *MSGF, *PGM, *SRVPGM, *TBL, *JRN

Objectif : rationaliser les droits


Réseau

Plusieurs améliorations liées à la sécurité

  • Client FTP

    Le client FTP permet d'autoriser des utilisateurs à accepter un certificat serveur non approuvé (pour lequel vous n'avez pas les autorités racines dans DCM associées à l'application DCM QIBM_QTMF_FTP_CLIENT).

    Pour cela, vous devez définir les utilisateurs autorisés dans la fonction d'usage QIBM_QTMF_CLIENT_ACCEPT_CERT, par WRKFCNUSG ou Navigator for i. L'utilisateur est prompté au moment de la connexion FTP pour autoriser temporairement le certificat serveur, pour la session FTP.

  • SNMP v3 (Simple Network Management Protocol)
    • Possibilité d'indiquer le seul support SNMPv3
    • Possibilité de définir des VACM (View Based Control Model) pour restreindre les informations à retourner.
    • Support de SHA-256 et SHA-512
    • Les commandes CRTDEVPRT et CHGDEVPRT prennent en charge SNMPv3 pour les imprimantes utilisant le driver *IBMSNMPDRV
  • Partage par défaut

    Par défaut, le répertoire /QIBM/ProdData/OS400/DirSrv/UserTools/Windows est partagé sous le nom QSIRSRV lors de l'installation de LDAP pour permettre l'accès à l'ancienne administration. Ce n'est plus le cas (inutile).

  • Serveur LDAP (Tivoli Directory Server for i)

    Possibilités supplémentaires de règles sur les mots de passe.

  • Universal Manageability Enablement (5770-UME)

    La nouvelle version V1R4M0 désactive TLSv1.1.


Général OS


Commandes CALL et CALLPRC

Possibilité de typer précisément les paramètres

Type et longueur


Planificateur

Suspendre / libérer l’ensemble du planificateur

  • HLDJOBSCDE JOB(*JOBSCD) ENTRYNBR(*ALL)
  • RLSJOBSCDE JOB(*JOBSCD) ENTRYNBR(*ALL)
  • Sans impact sur les travaux individuels

Nouvelle fréquence


SMTP

  • Possibilité d’indiquer un émetteur
    • Un des gros manques de la commande SNDSMTPEMM est de ne pas pouvoir indiquer émetteur, et le mail arrive donc avec un utilisateur par défaut
  • Nouveaux paramètres FORWARDING et ORIGINATOR
    • Commandes CHGUSRSMTP et ADDUSRSMTP
  • Autre option vous pouvez désormais indiquer une durée de rétention différentes pour les mails réussis et ceux en erreur
    • Attention la valeur s’exprime en secondes
    • Par exemple
      • 604800 pour les sucessfull (soit une semaine)
      • 2592000 pour les unssucessfull (soit un mois)

Date de référence

C'est une nouveauté majeure de la 7.5 : gestion des dates avec l'année sur 2 positions.

On a eu le bug de l'an 200, mais on s'approche du bug de l'an 2039 : actuellement, le domaine de valeur est 1940 à 2039.

Donc, pour les dates aux formats *YMD, *DMY, *MDY et *JUL :

  • Si YY >= 40, siècle = 19xx
  • Si YY < 40, siècle = 20xx

Pour les autres formats, le domaine de valeur couvre la période

  • 1900-2899 pour les dates IBM (*CYMD, *CDMY, *CMDY)
  • 0001-9999 pour les autres (*ISO, *USA, *EUR, *JIS, *LONGJUL)

Nouvelle variable d'environnement QIBM_QBASEYEAR

Permet de décaler cette année de référence

ADDENVVAR ENVVAR(QIBM_QBASEYEAR) VALUE(1970) LEVEL(*SYS)

accéletation

ADDENVVAR ENVVAR(QIBM_QBASEYEAR) VALUE(1970) LEVEL(*JOB)

En 7.5 : L’année de référence par défaut reste 1940

Pour les prochaines versions (> 7.5) : l’année de référence par défaut devient 1970

 

Effets :

  • Uniquement sur les paramètres de TYPE(*DATE) des commandes
  • N’impacte pas les programmes RPG/COBOL
  • N’impacte pas la BD (les dates stockées en BD ne s’appuient pas sur ce mécanisme pour déterminer le siècle)

A lire attentitivement : https://www.ibm.com/support/pages/new-base-year-support-2-digit-year-date-formats


Compression ZLIB

Nouvelle valeur dans le paramètre DTACPR des commandes SAV*

  • Gains en performance et en compression (30% de mieux que *HIGH)
  • Surtout : consomme peu de processeur

Supporté pour

  • Fichier de sauvegarde
  • Lecteurs optiques (y compris virtuels)
  • Instruction MI : CPRDATA (indiquer algothm=3, utilisera l'accélération processeur Power10 automatiquement)
  • Geographic Mirroring (PowerHA) pour 7.4 et 7.5

Non supporté pour

  • Bandothèques virtuelles
  • Lecteurs physiques (compression prise en charge par le matériel)

Sauvegarde

Affichage de la progression de la sauvegarde


Sauvegarde asynchrone par défaut

  • Option existante depuis la 7.1 pour le paramètre ASYNCBRING
  • Permet de gagner du temps sur les petits fichiers de l’IFS par exemple (effectue une pré-compression)

Commande RSTUSRPRF

Possibilité de RSTUSRPRF *ALL sans être en mode restreint

Sur un système en cours d’exécution, peut causer des effets de bords : les structures de droits sont stockées dans les profils

N'oubliez pas : RSTAUT *ALL


Globalisation

Ajout du support des CCSIDs


Power HA

La version 5.12 amène les évolutions :

  • Réduction de temps de transfert durant la synchronisation avec Geographic Mirroring Compression (ZLIB)
  • Nouveau type d'objet de configuration, *IPA, permettant de switcher plusieurs adresses IP dans un unique CRG
  • Notification de la progression du switchover (bascule)

Vous devez installer la PTF SI78996.

cf IBM PowerHA SystemMirror for i


DB2 Mirror for i
  • Possibilité d'exécuter sur des versions IBM i différentes : IBM i 7.4 pour un noeud, 7.5 pour l'autre. Le noeud 7.4 nécessite les dernières PTF.
  • Deux services SQL pour DB2 Mirror
    • Procédure ADD_MIRROR_VERSION : permet d'ajouter des informations de version à la Mirror Versioning List (MVL). Cela détermine les réplications. La prise en compte peut être immédiate ou non. En cas d'application immédiate, le point d'exit QIBM_QMRDB_VERSION est invoqué.
    • Vue MIRROR_VERSION_LIST : voir les entrées que l'on a ajouté
  • Notification de la progression du switchover (bascule)

Vous devez installer la PTF SI78996.

cf IBM PowerHA SystemMirror for i


Backup, Recovery and Media Services for i (5770-BR1)

De nombreuses évolutions :

  • Améliorations des commandes de sauvegarde/restauration : ASYNCBRING(*YES) par défaut, plus d'options pour les groupes de contrôle, nouveaux paramètres STRJRN() et SELECT() pour la commande RSTLIBBRM, STRJRN() pour la commande RSTOBJBRM
  • WRKMEDBRM (Media Services) : support OUTPUT(*OUTFILE) et OUTPUT(*OUTSTMF), sélection multiples pour "From location" et "Media class"
  • Droits : plus de restrictions par défaut
  • APIs et point d'exit : nouveaux paramètres pour Q1ARCLMED (Reclaim Media) et Q1ACHGCGA (Change Control Group Attributes)
  • Support matériel : LTO9 (Ultrium 9) et attachement DSI VTL iSCSI

SQL

Nouvelles fonctionnalités

Support du type booléen

Le support (enfin) des types booléens ! Concrètement, très utile pour les conversions vers/depuis JSON et XML.

Le support intègre :

  • Nouveau type BOOLEAN
  • Valeurs admises : TRUE / FALSE
  • Nouvelles fonctions scalaires : BOOLEAN, ISTRUE, ISFALSE, ISNOTRUE, ISNOTFALSE
  • Prise en charge des fonctions d'agrégation : ANY, SOME, EVERY
  • Nouveaux prédicats : IS TRUE, IS FALSE
  • Nouvelles constantes : TRUE, FALSE, ON, OFF, UNKNOWN
  • Support pour les comparaisons
  • Support en SQL embarqué
  • Support dans les opérations JSON et XML
  • Mise à jour des commandes CL et des APIs pour le support des colonnes de type BOOLEAN

Le langage DDS n'évolue pas, le type BOOLEAN n'est pas supporté pour DDS (PF/LF/DSPF/PRTF). Pour DDS et les langages OPM, il est interprété en tant que CHAR(1) contenant '0' ou '1'.

Pour les langages ILE, il est interprété en IND (de facto le compilateur considère CHAR(1) mais cela autorise les opérations booléennes).


La conversion vers BOOLEAN n'est pas supportée dans ALTER TABLE : pour ajouter une colonne de type BOOLEAN, vous devrez suivre ces étapes :

On voit ici le type BOOLEAN ainsi l'affectation via une expression booléenne.

 

Parmi les fonctions et prédicats fournis, beaucoup de syntaxes équivalentes :

Exemple avec JSON :

 


Le type BOOLEAN est prise en compte dans les outils suivants

  • APIs : QDBRTVFD, QUSLFLD, QSQGNDDL, ...
  • Commandes : DSPFFD, OPNDBF, CPYF, CPYTOIMPF, CPRFMIMPF, ...

    Par exemple

  • Catalogue DB2 : SYSCOLUMNS, SYSPARMS, SYSVARIABLES, ...

    Par exemple

  • Interfaces : SQL CLI, JDBC, ODBC, DRDA, OLEDB, .NET (pensez à mettre à jour vos drivers en dernière version !)

ACS supporte l'ensemble des opérations sur les booléens (assistant de création de table, affichage etc ...) y compris la modification de valeurs dans le result set :

Contrairement à STRSQL

Plus de détails https://www.ibm.com/support/pages/node/6575531



RESTRICT ON DROP

Cette option est supportée par CREATE TABLE et ALTER TABLE comme ceci :

La suppression est alors impossible aussi bien par DROP TABLE que par DLTF, pour tous les utilisateurs, même avec les droits spéciaux *ALLOBJ :

Pour supprimer la table (peut être nécessaire un jour) :

TRY_CAST

Alternative à la fonction CAST : permet de transtyper, mais retourne null en cas d'erreur.

CAST génère une exception en cas de non conversion.

Par exemple avec CAST

Et TRY_CAST

Extrêmement pratique pour éviter d'avoir des requêtes de contrôle et des requêtes de manipulation (insertion ?). Vous pouvez désormais tout intégrer en une seule requête.

En détail : https://www.ibm.com/docs/en/i/7.5?topic=expressions-try-cast-specification

RUNSQLSTM

La commande RUNSQLSTM admet désormais une nouvelle valeur *SRCFILE pour le paramètre MARGINS. Elle n'est valable que pour les fichiers sources, ignorée pour les fichiers IFS.

Elle permet d'indiquer que la marge de droite est la taille du fichier source, c'est à dire de prendre en compte tous les caractères du fichier.

Fonctions HTTP_PATCH

  • Nouvelles fonctions QSYS2.HTTP_PATCH() & QSYS2.HTTP_PATCH_VERBOSE()

    Ces fonctions permettent l'action HTTP PATCH. Les actions GET, POST, PUT et DELETE sont déjà disponibles. Le fonctionnement est identique

    VALUES QSYS2.HTTP_PATCH('https://www.example.com/users',
                           'ABC',
                           '{"sslCertificateStoreFile":"/home/javaTrustStore/fromJava.KDB"}');
  • Nouvelle option verboseResponseHeaderFormat

    Lors de l'utilisation d'une fonction HTTP*VERBOSE, permet de choisir le format de réception des entêtes en retour : json, jsonString ou raw. Les formats json ou jsonString peuvent produire des pertes de données du fait de la conversion json.

    Cette option est venue par le mécanisme des Ideas (proposé par Volubis), cela fonctionne !

    VALUES QSYS2.HTTP_GET( 'https://www.somesite.com/authorized_info.html', '{"verboseResponseHeaderFormat ":"jsonString"}' );

Améliorations du gestionnaire de base de données

  • Taille maximale des index (radix) à 16 To

    Sur les versions précédentes : 1,7 To maximum

    La taille maximale de l'index dépend de la taille de page de page logique de chemin d'accès (PAGESIZE)

  • FlashCopy

    Nouveau paramètre NOCMTBDY sur la commande CHGASPA

    Permet d'indiquer s'il faut rétablir les validations ou non lors de l'IPL ou de la mise en fonction de l'IASP. Cela concerne les transactions qui étaient en cours au moment du flashCopy.

    Si *YES est indiqué, il faut renseigner les paramètres LPARSER (n° de série LPAR) et LPARID (identifiant LPAR) pour identifier la partition sur laquelle NOCMTBDY doit être effectuée.

    Pour plus de détails https://www.ibm.com/support/pages/node/6579507

  • Query Supervisor : exemple de point d'exit en CL

    IBM fournit de nouveaux exemples de programmes d'exit pour Query Supervisor, dont certains en CL

    Point d'exit : QIBM_QQQ_QRY_SUPER

    Exemple CL :

                 PGM        PARM(&QRYS0100 &RC)                           
                 DCL        VAR(&QRYS0100) TYPE(*CHAR) LEN(8192)          
                 DCL        VAR(&RC) TYPE(*INT) LEN(4)                    
                 DCL        VAR(&BINLOW) TYPE(*UINT) LEN(4)               
                 DCL        VAR(&BINHIGHU) TYPE(*UINT) LEN(4)             
                 DCL        VAR(&MAXINT) TYPE(*DEC) LEN(15 0) +           
                              VALUE(4294967296)                           
                 DCL        VAR(&PLANID) TYPE(*DEC) LEN(15 0)             
                                                                          
                 MONMSG     MSGID(CPF0000)                                
     /* INIT RETURN CODE TO CONTINUE RUNNING QUERY */                     
                 CHGVAR     VAR(&RC) VALUE(0)                             
                                                                          
     /* GET VALUES FROM THE INPUT FORMAT */                               
                 CHGVAR     VAR(&BINHIGHU) VALUE(%BINARY(&QRYS0100 67 4)) 
                 CHGVAR     VAR(&BINLOW) VALUE(%BINARY(&QRYS0100 71 4))   
                 CHGVAR     VAR(&PLANID) VALUE(%DEC(&BINHIGHU 15 0) * +    
                              &MAXINT + %DEC(&BINLOW 15 0))                
                                                                           
     /* SUBMIT JOB TO DUMP THE PLAN CACHE FOR THIS QUERY */                
                 SBMJOB     CMD(RUNSQL SQL('CALL QSYS2.DUMP_PLAN_CACHE(' + 
                              *BCAT 'FILESCHEMA => ''SUPERVISOR'', +       
                              FILENAME => ''PLANDUMPS'',  +                
                              PLAN_IDENTIFIER=> ''' *TCAT +                
                              %CHAR(&PLANID) *TCAT ''')')) +               
                              USER(MYAUTHUSER)                                
                              /* Replace MYAUTHUSER with a user profile */
                              /* authorized to DUMP_PLAN_CACHE().       */                                            
                 ENDPGM                                                    

    Voir https://www.ibm.com/docs/en/i/7.4?topic=supervisor-query-example-exit-programs

Performances

  • SQE : amélioration de l'estimation du coût processeur

    Prise en compte des évolutions processeur et matériel dans les algorithmes heuristiques

    En passant à la 7.5 vous bénéficiez automatiquement des améliorations de performance.

  • SQE : amélioration du traitement SMP (Symetric Multi Processing

    le produit SMP - 5770SS1 option 26 - permet l'exécution d'une requête SQL sur plusieurs tâches parallèles. La valeur PARALLEL_DEGREE de QAQQINI permet de régler cette activité, la valeur usuelle étant *OPTMIZE.

    Avec IBM i 7.5, le mode *OPTMIZE est amélioré principalement pour optimiser dynamiquement le nombre de tâches (prise en compte de l'utilisation globale du processeur).

    Le nombre de tâches diminue automatiquement lorsque l'usage du processeur dépasse 80%. Vous pouvez personnaliser cette valeur avec l'option QAQQINI PARALLEL_MAX_CPU.

Services

Services IBM i : nouveaux

  • QSYS2.ACTIVATION_GROUP_INFO() : donne les informations des groupes d'activation en cours pour un travail, avec la mémoire consommée (DSPJOB option 18 et API QWVOLAGP)
  • QSYS2.ADD_USER_INDEX_ENTRY() et QSYS2.ADD_USER_INDEX_ENTRY_BINARY() : ajouter une entrée à un *USRIDX (cf API QUSADDUI)
  • QSYS2.ASSOCIATE_JOURNAL_RECEIVER() : permet de ré-établir un ou plusieurs récepteur avec son journal
  • QSYS2.BINDING_DIRECTORY_INFO : liste les postes d'un répertoire de liage (*BNDDIR), soit la liste des *MODULE et *SRVPGM
  • QSYS2.CHANGE_USER_SPACE() et QSYS2.CHANGE_USER_SPACE_BINARY : modifie le contenu d'un *USRSPC
  • QSYS2.CHANGE_USER_SPACE_ATTRIBUTES() : modifie les attributs d'un *USRSPC (exemple : la capacité à s'agrandir automatiquement, cf API QUSCUSAT)
  • QSYS2.CHECK_PASSWORD() : permet de tester qu'un mot de passe respecte les règles définies par les valeurs système QPWDRQDDIF, QPWDRULES, QPWDMINLEN, QPWDMAXLEN, QPWDLMTAJC, QPWDLMTCHR, QPWDLMTREP, et QPWDRQDDGT. Cela ne modifie pas le mot de passe.
  • QSYS2.CREATE_USER_INDEX() : permet de créer ou remplacer un *USRIDX (cf API QUSCRTUI)
  • QSYS2.CREATE_USER_SPACE() : permet de créer ou remplacer un *USRSPC (cf API QUSCRTUS)
  • QSYS2.DNS_LOOKUP() : recherche l'adresse IP depuis le nom DNS.
  • QSYS2.ELECTRONIC_SERVICE_AGENT_INFO : permet de vérifier et d'obtenir les informations sur la connexion Electronic Service Agent (doit être configuré). Cf commande CL VFYSRVAGT TYPE(*DETAIL)
  • QSYS2.JOURNAL_RECEIVER_INFO : liste l'ensemble des récepteurs de journaux du système et leurs attributs
  • QSYS2.REMOTE_JOURNAL_INFO : liste les journaux distants (suivants les informations DRDA)
  • QSYS2.REMOVE_USER_INDEX_ENTRY() : supprime une entrée d'un *USRIDX
  • QSYS2.SPOOLED_FILE_INFO() : retourne une liste de fichiers spoules, avec sélection sur l'utilisateur, date, statuts, travail, file ...
  • QSYS2.SQL_CHECK_FUNCTION_USAGE() : permet de contrôler que l'utilisateur en cours est autorisé à une fonction d'usage (cf WRKFCNUSG)
  • QSYS2.SQL_CHECK_SPECIAL_AUTHORITY() : permet de contrôler que l'utilisateur en cours dispose d'une autorité spéciale (*ALLOBJ, *JOBCTL ...)
  • QSYS2.SYSTEM_ACTIVITY_INFO() : donne des informations statistiques sur l'utilisation de la CPU (cf WRKSYSACT)
  • QSYS2.TELNET_SERVER_ATTRIBUTES : donne les attributs du serveur telnet (cf CHGTLNA ou API QTVRTVTELA)
  • SYSTOOLS.AUDIT_JOURNAL_JS() : poste "Données de travail" du journal d'audit
  • SYSTOOLS.AUDIT_JOURNAL_OM() : poste "Modification de la gestion d'un objet" du journal d'audit
  • SYSTOOLS.AUDIT_JOURNAL_ST() : poste "Outils de maintenance" du journal d'audit

Services IBM i : évolutions

  • QSYS2.ACTIVE_JOB_INFO() : la colonne DETAILED_INFO accepte une nouvelle valeur WORK
  • QSYS2.JOBLOG_INFO() : nouvelle colonne QUALIFIED_JOB_NAME
  • QSYS2.NETSTAT_JOB_INFO : nouvelle colonne JOB_TYPE_SYSTEM (ASJ, BCI, BCH ...)
  • QSYS2.OBJECT_STATISTICS() : ajout de la colonne BUILD_ID (identifiant de l'objet). Cet identifiant peut être indiqué via l'API QLICOBJD
  • QSYS2.SCHEDULED_JOB_INFO : ajout de la valeur *YEARLY à la colonne FREQUENCY
  • QSYS2.SECURITY_INFO : ajout de la colonne ALLOW_PASSWORD_EXIT_PROGRAM_ADD_REMOVE (possibilité d'ajouter des programmes d'exit sur contrôle et validation de mot de passe)
  • QSYS2.SERVER_SBS_ROUTING : nouveaux serveurs supportés (QZDASSINIT : database secure, QPWFSERVSS : fiel server secure)
  • QSYS2.SERVER_SHARE_INFO : ajout de la colonne SHARE_AUTHORIZATION_LIST (liste d'autorisation)
  • QSYS2.SET_SERVER_SBS_ROUTING() : nouveaux serveurs supportés (QZDASSINIT : database secure, QPWFSERVSS : fiel server secure)
  • QSYS2.USER_INFO : ajout des colonnes MAXIMUM_SIGN_ON_ATTEMPTS et PASSWORD_LEVEL_4
  • QSYS2.USER_INFO_BASIC : ajout des colonnes MAXIMUM_SIGN_ON_ATTEMPTS et PASSWORD_LEVEL_4
  • QSYS2.USER_STORAGE : ajout de nombreuses colonnes à la vue, principalement les autorités
  • SYSTOOLS.GENERATE_PDF() : support de *LAST en tant que numéro de spoule

Services DB2 : nouveaux

  • QSYS2.MTI_INFO() : liste l'ensemble des MTI (Maintained Temporary Index - présents jusqu'au prochain IPL). Sélection possible par SCHEMA et/ou TABLE. Nécessite *JOBCTL ou QIBM_DB_SQLADM

Services DB2 : évolutions

  • QSYS2.GENERATE_SQL : génère les noms longs. Le texte des objets est générés en instruction COMMENT
  • QSYS2.GENERATE_SQL_OBJECTS : idem
RPG

SND-MSG et ON-EXCP

Cette version apporte le support des nouvelles fonctionnalités RPG, des améliorations de l'interface, des évolutions demandées par la communauté (Ideas) et des fixes.

Egalement disponible par PTF pour 7.3 et 7.4. Cf https://www.ibm.com/support/pages/node/6568841

SND-MSG

  • Envoie un message
    • Information (*INFO) -> « Logue » un événement (JobLog)
    • Echappement (*ESCAPE) -> Lève une exception
  • %MSG paramètre du message (texte ou msgf.msgid..)
  • %TARGET pour se déplacer dans la pile d’appel (stack)

ON-EXCP

  • Surveille la réception d'un message identifié (message ID)

En CL on aurait une équivalence avec


Exemple :

Code d'origine :

Code réécrit :

Cela permet une propagation et une gestion des exception (erreurs) améliorées, proche du modèle CL ou d'autres langages (try/catch).

A noter : SND-MSG remplace avantageusement l'utilisation de l'API QMHSNDPM dans le code RPG. ON-EXCP n'avait pas d'équivalent direct.

On obtient donc désormais

Au lieu de

On remarque les attributs du message


Open Source

Le produit 5733OPS n'est plus installable en 7.5.

PRUV (Pre-Upgrade Verification Tool for IBM i) indique

cf https://www.ibm.com/support/pages/ibm-pre-upgrade-verification-tool-ibm-i

Vous devez donc passer par les versions RPM des produits

Voir https://ibmi-oss-docs.readthedocs.io/en/latest/yum/README.html et https://ibm.github.io/ibmi-oss-resources/

Voir les options installées


Pour rappel, emplacement des produits :

  • Avec 5770OPS : /QOpenSys/QIBM/ProdData/OPS
  • Avec YUM/RPM : /QOpenSys/pkgs

Avantage de passer à la version RPM : les produits sont disponibles plus rapidement, plus standard du monde Open Source (principalement Linux)

Il y'a également un changement de la stratégie d'IBM sur la gestion des référentiels de packages

  • Jusqu'ici : un unique référentiel, avec en cible la 7.2 (version la plus ancienne permettant la prise en charge des packages)
  • Maintenant, 2 référentiels
    • IBM i base : version minimum supportée
    • IBM i release : contient les packages pour la version courante

Références

TR1 pour IBM i 7.5 / TR7 pour IBM i 7.4

Annoncée le 10/10/2022, disponible décembre 2022

Généralités

Pour l'instant, uniquement sur la base de la documentation publiée par IBM https://www.ibm.com/support/pages/ibm-i-75-tr1-enhancements


SQL

Db2 for i - évolutions fonctionnelles

  • Geospatial Analytics - with IBM Watson : fonctions géospatiales basées sur Watson. Tout est intégré dans l'IBM i, aucune donnée ne sort de la machine. Les fonctions sont dans QSYS2, sans charge supplémentaire (gratuit). Ces fonctions permettront par exemple des calcul de distance, de délimitation de zone, de test de la présence d'une zone dans une autre ...
  • REMOTE TABLE : permettra l'exécution d'une fonction table (UDTF) sur une BD distante !
  • variable globale REPLICATION_OVERRIDE : contrôle si le colonnes auto-générées sont maintenues par DB2 ou non. La désactivation de cette fonction facilite la réplication des données
  • FIRST_DAY built-in scalar function : retourne le premier jour du mois pour une date fournie
  • JSON_UPDATE built-in scalar function : permet la mise à jour d'un document JSON ! Actuellement, vous pouvez construire un document, mais pas mettre à jour une information spécifique ou modifier une partie de l'arborescence. Avec JSON_UPDATE vous indiquer quelle clé vous voulez modifier (au travers d'un JSON PATH comme avec JSON_TABLE) et la nouvelle valeur
  • TIMESTAMPDIFF_BIG built-in scalar function : différence entre deux horodatages suivants l'unité de votre choix, jusqu'à la microseconde (d'où le BIG, car retourne un BIG INTEGER)
  • QSYS2 HTTP Functions - HTTP options support for "headers" : simplification de la syntaxe des entêtes HTTP

Db2 for i - améliorations du moteur de base de données

  • SQL Error Logging Facility (SELF) : SQL Error Logging Facility. Permet de tracer les erreurs SQL facilement, y compris en PRODUCTION. Vous pouvez indiquer une liste de SQLCODE à surveiller par exemple, et obtenir les traces correspondantes dans une table QSYS.SQL_ERROR_LOG.
  • COMMENT on table function return columns : pour les UDTF (fonctions table), permet de définir un commentaire pour le result set
  • QSYS2.SYSCOLUMNSTAT enhanced for variable length columns : permet de voir la taille allouée et la taille utilisée pour les colonnes à longueur variable (VARCHAR et autres). Vous pouvez alors ajuster avec la clause ALLOCATE des instructions CREATE TABLE et ALTER TABLE.
  • Online reorganize physical file member (RGZPFM) enhancement : lors de l'utilisation de RGZPFM annulable, permettant la réorganisation des fichiers à chaud via l'option ALWCANCEL(*NO), les enregistrements actifs peuvent être indisponibles le temps de l'opération. Ce problème est désormais réglé.
  • New QAQQINI control PARALLEL_MAX_SYSTEM_CPU et PARALLEL_MIN_TIME : réglage du comportement pour DB2 SMP (Symmetric Multiprocessing) et SQE

Services IBM i : nouveaux

  • QSYS2.COMMAND_INFO : fournit les informations pour une commande (DSPCMD)
  • QSYS2.HARDWARE_RESOURCE_INFO et QSYS2.HARDWARE_RESOURCE_INFO() : liste des ressources matérielles (STRSST Hardware Service Manager)
  • NVMe Device Locking Policy services : gestion de l'encryption des disques NVMe
    • ADD_DEVICE_LOCKING_POLICY procedure
    • CHANGE_DEVICE_LOCKING_POLICY procedure
    • CREATE_LOCKING_POLICY procedure
    • DELETE_DEVICE_LOCKING_POLICY procedure
    • FACTORY_RESET_DEVICE procedure
    • LOCKING_POLICY_INFO view
    • REMOVE_DEVICE_LOCKING_POLICY procedure
    • UNLOCK_DEVICE procedure
  • ObjectConnect services : accéder et modifier la configuration de ObjectConnect
    • CHANGE_OBJECTCONNECT
    • OBJECTCONNECT_INFO
  • Submitted Job Tracker services : permet de gérer le suivi des travaux à surveiller
    • ADD_TRACKED_JOB_QUEUE
    • CLEAR_TRACKED_JOB_INFO
    • REMOVE_TRACKED_JOB_QUEUE
    • TRACKED_JOB_INFO
    • TRACKED_JOB_QUEUES
  • QSYS2.CHANGE_DISK_PATHS : permet d'activer ou désactiver les disques (SCSI uniquement)
  • SYSTOOLS.AUDIT_JOURNAL_AD() : postes AD (Modification d'un attribut d'audit d'objet) du journal d'audit
  • SYSTOOLS.AUDIT_JOURNAL_DS() : postes DS (Demande de modification de mot de passe DST) du journal d'audit
  • SYSTOOLS.AUDIT_JOURNAL_IM() : postes IM (Moniteur d'intrusions) du journal d'audit
  • SYSTOOLS.AUDIT_JOURNAL_PG() : postes PG (Modification de groupe principal d'objet) du journal d'audit
  • SYSTOOLS.AUDIT_JOURNAL_SK() : postes SK (Connexions SSL) du journal d'audit
  • SYSTOOLS.AUDIT_JOURNAL_SM() : postes SM (Gestion système) du journal d'audit
  • SYSTOOLS.AUDIT_JOURNAL_ZC() : postes ZC (Modification d'audit d'objet) du journal d'audit
  • SYSTOOLS.AUDIT_JOURNAL_ZR() : postes ZR (Accès lecture audit) du journal d'audit
  • QSYS2.PROCESS_SYSTEM_LIMITS_ALERTS : demande le traitement des alertes, possible pour les 24 dernières heures

Services IBM i : évolutions

  • QSYS2.ACTIVE_DB_CONNECTIONS() : informations supplémentaires pour DB2 Mirror
  • QSYS2.ACTIVE_JOB_INFO() : ajout des informations workload group
  • QSYS2.ASP_INFO : ajout des informations geographic mirroring
  • QSYS2.HISTORY_LOG_INFO() : retourne les noms individuels des colonnes
  • QSYS2.OUTPUT_QUEUE_ENTRIES and QSYS2.OUTPUT_QUEUE_ENTRIES() : ajout des colonnes TOTAL_RECORDS, MAXIMUM_RECORDS, et USER_DEFINED_DATA
  • QSYS2.OUTPUT_QUEUE_INFO : ajout de l'adresse IP
  • QSYS2.SYSDISKSTAT and QSYS2.SYSDISKSTAT() : ajout n° de port
  • QSYS2.SYSTEM_STATUS_INFO and QSYS2.SYSTEM_STATUS() : ajout du statut pour les travaux batch

Services DB2 : évolutions

  • QSYS2.MTI_INFO() : ajout des identifiants des plans qui ont utilisés le MTI
  • SYSPROC.WLM_SET_CLIENT_INFO() : supporte VERBOSE

OS

  • Support de la compression ZLIB pour main storage dump : temps de compression réduit et meilleur résultat (en taille)
  • IBM i 7.5 supporte le serveur
    • IBM Power S1022s (9105-22B) adds 2 x 4-core P10 software tier offering
  • Virtualisation
    • Support for VIOS 3.1.4, including VIOS dump improvements
    • IBM i leverages VIOS NPIV multiple queues
  • IBM i I/O Support Details
    • #EJBD -- Storage Backplane with two NVMe U.2 (15mm) Flash drive bays for Power E1080 servers
    • #EC75, #EC76 -- PCIe4 2-port 100Gb NIC/RoCE QFSP56 adapter
    • #EN2W, #EN2X -- PCIe3 4-port 10GbE BaseT RJ45 adapter
    • #EN1N, #EN1P -- PCIe4 64Gb 2-port Optical Fibre Channel adapter
    • #EN1L, #EN1M -- PCIe4 32Gb 4-port Optical Fibre Channel adapter
    • #ES3H -- Enterprise 800 GB SSD PCIe4 NVMe U.2 module for AIX/Linux
  • IBM i Functional Enhancements Details
    • Support de la protection par mot de passe des données sur disque NVMe sur serveur Power 10
    • Désactivation manuelle d'un chemin de disque

RPG

Le langage RPG s'enrichit des options suivantes :

  • OPTIONS(*CONVERT) pour les paramètres de procédure

    Permet la conversion de paramètres UCS2 transmis avec les options CONST ou VALUE.

    Pour les pointeurs, l'effet est comparable à OPTIONS(*STRING).

  • Nouvelles fonctions intégrées %CONCAT et %CONCATARR

    Permettent de concaténer une liste de chaines de caractères, ou une liste d'éléments d'un tableau.

  • Amélioration de charcount(*natural)

    Permet la gestion des chaînes de caractères Unicode (UTF8 principalement) dont le nombre d'octets ne correspond pas au nombre de caractères.

    Cette option est supportée dans la plupart des fonctions intégrées relatives aux chaines de caractères : %SUBST, %SCAN, %XLATE, %SPLIT

    Attention : nécessite des PTF compilateur ET runtime.

Voir le détail ici https://www.ibm.com/support/pages/rpg-cafe

DB2 Mirror

Evolutions sur les sujets suivants :

  • Submitted job tracker : permet de suivre l'état des travaux soumis, de le répliquer sur le noeud distant, et en cas d'erreur de le re-soumettre
  • Améliorations de la réplication de l'IFS
  • Nouveau support pour l'adapteur PCIe4 2-port 100GbE RoCE x16 adapter (FC EC75 and EC76; CCIN 2CFB)

IBM Navigator for i

De nombreuses évolutions, et ajout de fonctionnalités manquantes par rapport à l'ancienne version.

Par exemple :

  • Page d'accueil : ajout d'informations sur le IASP
  • IFS : affichage sous forme arborescent
  • Favoris : intégration du nom de l'hôte
  • PDI : nombreuses améliorations dans l'afficgae, ajout de fonctions pour Disk Watcher et Job Watcher
  • Moniteurs : ajout d'un nouveau panneau permettant d'afficher toutes les métriques d'un moniteur
  • Message de l'opérateur système : afficher uniquement les messages sans réponses
  • Sécurité : ajout de la détection d'intrusion, évolutions sur l'exploitation du journal d'audit
  • Réseau : ajout des règles sur les packets IP (firewall), plus d'options pour LDAP et la configuration des lignes
  • Travaux actifs : meilleurs performances (utile pour les systèmes avec de nombreux travaux)

Voir le détail ici https://www.ibm.com/support/pages/ibm-navigator-i-documentation-functional-areas

Power HA

  • Nouvelle interface web, moderne, pour gérer les environnement PowerHA
  • Améliorations d'IBM FlashSystem et de Spectrum Virtualize FlashCopy, y compris une automatisation et une simplification supplémentaires de FlashCopy basé sur IASP.

Voir le détail ici https://helpsystemswiki.atlassian.net/wiki/spaces/IWT/pages/162627641/Technology+Updates

Backup and Recovery Media Services for i

Améliorations des performances

Voir le détail ici https://helpsystemswiki.atlassian.net/wiki/spaces/IWT/pages/888963080/BRMS+SQL+Services

RATIONAL DEVELEPOR FOR i

Fix 12 pour RDi 9.6

Généralités

Disponible depuis le 23 août 2022.

Cette version apporte le support des nouvelles fonctionnalités RPG, des améliorations de l'interface, des évolutions demandées par la communauté (Ideas) et des fixes.

La liste complète des évolutions : https://www.ibm.com/support/pages/fix-list-rational-developer-i#96012

Prérequis : RDi 9.6.x

Evolutions

Avant installation, attention à cette note :

Pour rappel, vous pouvez utiliser l'aide suivant 3 modes :

  • Web (fonctionnement par défaut)
  • Installation locale (téléchargement sur le poste)
  • Réseau (via un serveur sur votre réseau)

 

Gestion du statut des connexions

Dans les propriétés d'une connexion, nouvel onglet "Connection Status" :

 

Egalement depuis la vue Table Objet / PDM :

 

Support du langage RPG :

  • Codes opération ON-EXCP et SND-MSG
  • Fonctions intégrées %MSG et %TARGET

 

Le support est complet : coloration, complétion, détection de l'utilisation de variables.

 

Basculer entre les modes édition et visualisation

Par clique droit dans le source (pas l'onglet, le source)

Ou raccourci : Ctl + Maj + G

Retrouver notre liste des raccourcis les plus usuels.

 

Comparaison de membres

Jusqu'ici, pour comparer deux membres, il fallait les sélectionner tous les deux, pour accéder à l'option "Comparer réciproquement" par le clique droit

Désormais, clique droit sur un membre permet d'afficher la comparaison avec un prompt

 

Cela facilite grandement la sélection des membres lorsque ceux ci sont dans des bibliothèques ou fichiers différents.

Surtout, vous pouvez sélectionner un membre sur un autre système !

 

Menu contextuel (clique droit) "Filtrer Vue" : nouvelle option

 

Afficher le contenu de fichiers de sauvegarde

 

Un certain nombre de fonctions que nous n'avons pas encore réussi à faire fonctionner !

  • Support du copier/coller par CTRL+V, CTRL+C dans la vue table objet pour le filtre rapide
  • Support de la liste d'erreurs pour CRTPGM et CRTSRVPGM 
  • Edition ILE RPG
    • Quicto comment out unused variables
    • Quick fix to create missing variables and procedures
    • Add a keyboard short-cut [alt]+[shft]+t to the Extract Constants menu action
    • Extract Procedure: support embedded SQL statements in selection

 

Edition CL

Les instructions MONMSG EXEC(...) sont reconnu en tant qu'instruction de contrôle par l'option "filtrer vue".

 

De nombreuses autes évolutions

Les Ideas remplacent les RFE (Request for Enhancement)

 

Access Client Solutions

Version 1.1.9.0

Cette version est disponible depuis avril 2022.

Nous avons traité dans la Pause Café 89 https://www.volubis.fr/Pausecaf/PAUSECAF89.html

L'historique des versions et fonctionnalités associées https://www.ibm.com/support/pages/ibm-i-access-client-solutions 

Prochaine version

Les prochaines fonctionnalités attendues portent sur :

  • L'intégration des nouveautés DB2 dans les outils d'administration de la base de données (taille allouée pour les VARCHAR ...),RESTRICT ON DROP
  • Exploitation des journaux : capacité d'ignorer des exit programmes utilisateur, les messages *INQ, de ne pas vérifier si les journaux à distance ont une copie complète du récepteur
  • Possibilité de renommer une partition d'une table

Pour les scripts SQL

  • Recherche améliorée
  • Meilleure gestion des entêtes de colonnes pour la copie
  • Plus d'exemples
  • Sauvegarde automatique des scripts toutes les x secondes dans un cache. En cas de plantage, on peut récupérer le script SQL non sauvegardé dans le cache.

Digital Certificate Manager

Améliorations de l'interface

Signature

Si vous utilisez la signature d'objets par DCM, l'interface a été entièrement revue pour plus de facilité d'utilisation

Gestion des certificats

Les améliorations portent sur des simplifications des manipulations via l'interface. Par exemple la capacité à gérer des répertoires d'upload et download, un navigateur IFS permettant de sélectionner un fichier au lieu de saisir son nom et chemin complet. Pas de révolution mais plus de facilité au quotidien.

ou

A noter que l'interface est désormais bien plus réactive que l'ancienne.

Navigator for i

Avec la 7.5

Stack technique

Mise à jour des versions sous-jacentes de Angular et PrimeNG, pouvant donner lieu à de légères modifications d'affichages, principalement l'arrangement des tableaux.

Globalement, des fonctionnalités ajoutées ! IBM annonce également que l'ensemble des fonctions actuellement indisponibles dans la nouvelle interface et présentes dans l'anciennes seront migrées rapidement.


SMTP

L'ensemble des propriétés SMTP sont désormais accessibles et modifiables :


Journal d'audit

Nouvelles capacités d'affichage :

  • Afficher le graphique à barres du nombre d'entrées de journal d'audit pour une journée
  • Afficher le graphique du nombre d'entrées de journal d'audit pour une semaine
  • Afficher des informations détaillées pour chaque type d'entrée dans une table

LDAP

Configuration de la publication des différentes informations, vers l'annuaire local ou distant.


Moniteur et PDI

Améliorations de l'interface de gestion des moniteurs.

Nombreuses améliorations de PDI (Performance Data Investigator).


Content Manager on Demand (5770-RD1)

Première implémentation de l'interface dans Navigator for i.

Ce produit .


NVMe health monitor

Permet de prédire la durée de vie des disques NVMe

Disponible également en 5250


Fonction d'usage QIBM_NAV_ALL_FUNCTION

La valeur par défaut est désormais *DENIED au lieu de *ALLOWED : en conséquence, des utilisateurs qui disposaient d'autorisations sous Navigator for i sont désormais limités.

La nouvelle version de Navigator for i utilise de nouvelles fonctions d'usage. Voir la synthèse https://www.ibm.com/support/pages/node/6485853

MERLIN

IBM i Modernization Engine for Lifecycle Integration

Merlin est un ensemble d'outils proposés par IBM et permettant d'aller vers la modernisation des applications IBM i ET du cycle de vie de ces applications. De nombreux outils sont fournis sous forme d'un containeur OpenShift.

  • Outils de contrôle de source (Git)
  • IDE (style VSCode dans un navigateur) + des fonctionnalités avancées fournies par Arcad
  • CI/CD : jenkins ...

Point d'entrée https://ibm.github.io/merlin-docs/#/?id=additional-resources