https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2025-08-19 16:40:022025-08-19 16:40:03Débuter en java sur ibmi
Vous avez un nouveau paramètre sur les commandes CRTBNDRPG ou CRTRPGMOD DATEYY( )
DATE WITH 2-DIGIT YEARS . . . . DATEYY( *ALLOW)
Ce paramètre n’est pas encore documenté dans l’aide mais vous comprenez , que c’est pour les dates sur 6 caractères
Rappel sur les dates à 6 , vous avez un point de bascule: 40 – 99 : Le siècle est supposé être « 19 » 00 – 39 : Le siècle est supposé être « 20 »
C’est dans 14 ans
Pour ce paramètre, DATEYY vous avez 3 valeurs possibles
DATEYY(*ALLOW) : autorise tous les formats de date, autrement dit, n’effectue aucune validation. DATEYY(WARN) : si une date est détectée, elle est considérée comme une année sur deux caractères, une erreur de compilation de niveau 10 est générée. DATEYY(*NOALLOW) : si une date pourrait être détectée, la compilation est renvoyée avec une erreur de niveau 30. La valeur par défaut est « *ALLOW ».
il est conseillé de compiler avec *WARM, vous aurez une liste des problèmes potentiels
Ce message apparaitra
Msg id Sv Number Seq Message text *RNF0201 10 5 002300 WARNING: A DATE WITH 2 DIGITS FOR THE YEAR ONLY SUPPORTS THE YEARS 1940 TO 2039. REASON CODE: xxxxxx.
Rappel: Pensez dans SQL à bien utiliser des formats sur 8 *ISO par exemple pour tous vos calculs
Vous voulez changer le groupe d’activation d’un programme. Contrairement à une idée reçue, on peut dans certains cas renommer le groupe d’activation d’un programme ILE
Si vous créez un programme
CRTPGM
Ou
CRTBNDRPG
Vous allez indiquer le groupe d’activation d’exécution de votre programme
Vous ne pouvez pas changer le groupe d’activation par CHGPGM !
Mais vous pouvez le faire par la commande UPDPGM
avant ==> DSPPGM AATSTRET
Attribut du groupe d’activation . . . . . . . : PLB1
UPDPGM PGM(AATSTRET) MODULE(*NONE) ACTGRP(PLB45)
Valeurs des paramètres AUT et USRPRF ignorées.
L’objet remplacé AATSTRET type *PGM a été déplacé dans QRPLOBJ.
Programme AATSTRET créé dans la bibliothèque GDATA.
Programme AATSTRET mis à jour dans GDATA.
après ==>DSPPGM AATSTRET
Attribut du groupe d’activation . . . . . . . : PLB45
la seule limitation est que le groupe doit être nommé
Pour interdir ce changement à l’assemblage vous devez indiquer
CRTPGM … ALWUPD(*NO)
PS :
Cette option n’existe pas sur le CRTBNDRPG donc modifiable par défaut
Vous devez avoir le droit *change sur programme.
Rappel:
En batch on essaye d’avoir le premier programme qui crée le groupe d’activation et les programmes appelés s’exécuteront en *caller
Dans les autres cas, webservice, interactif, etc il peut être préférable d’avoir un groupe d’activation par programme
Pour analyser les groupes actifs, vous pouvez utiliser le service : QSYS2.ACTIVATION_GROUP_INFO
— Liste des groupes par Travail
SELECT A.JOB_NAME,
count(*)
FROM TABLE (
QSYS2.ACTIVE_JOB_INFO()
) AS A
LEFT JOIN TABLE (
QSYS2.ACTIVATION_GROUP_INFO(JOB_NAME => A.JOB_NAME)
) AS G
ON 1 = 1
group by A.JOB_NAME
ORDER BY count(*) desc
;
https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2025-08-13 11:29:572025-08-19 13:54:43Changer le groupe d’activation d’un programme
REXX (Restructured Extended Executor) est un langage de script interprété créé par IBM, bien connu pour les « Roger » qui ont sévit sous OS2. Il est conçu pour être facile à lire et facile à apprendre, tout en étant très puissant pour l’automatisation.
Sur IBMi, il est utilisé pour : Automatiser des tâches système Créer des utilitaires interactifs Prototyper rapidement Faire du traitement de texte et de données
Ces points forts sont : Très rapide à écrire, idéal pour du scripting jetable Permet d’appeler directement des commandes système sans compiler un programme Peut servir de « colle » entre RPG, CL, SQL et PASE/QShell Permet de faire des tests d’appels, des scripts de migration, des reprises de données.
Comment ca marche?
Vous devez créer un fichier source qui contiendra les scripts à exécuter
/* REXX / / Boucle interactive jusqu’à ce que l’utilisateur tape ‘FIN’ */
DO FOREVER SAY « Entrez une commande CL (ou FIN pour quitter) : » PULL CMD IF CMD = « FIN » THEN LEAVE ADDRESS ‘COMMAND’ CMD END
Ce scripte exécutera des commandes CLP, jusqu’à ce que saisissiez FIN
Pour exécuter ce script :
STRREXPRC SRCMBR(REXX01) SRCFILE(MALIB/QRXSRC)
Remarque : Le rexx est de moins en moins utilisé mais, il peut encore être utilisé, en effet, il peut aider a du déploiement et de la mise au point, etc…
En bons élèves, nous profitons de l’été pour faire nos devoirs de vacances. Entre autre, installation de la version 7.6 sur plusieurs de nos partitions.
D’abord une partition de test, bac à sable, puis nos partitions de production i(vous avez peut être vu une interruption de service sur nos sites web).
J’en profite pour faire un petit retour d’expérience sur ces installations.
Et pour finir ce préambule, je remercie l’équipe du support !
Une mise à jour comme les autres ?
Oui, je ne détaille pas ici le processus de mise à jour, c’est classique : téléchargement des images et clés sur ESS, PRUV pour les contrôle etc …
Quelques points d’attention
DST/SST
Le mot de passe de QSECOFR ne doit pas être celui par défaut (sinon il sera inutilisable)
Les profils 11111111 et 22222222 sont supprimés pendant l’installation
Bonne pratique : créer au moins un autre profil avec tous les droits pour DST, changer le mot de passe de QSECOFR. Les profils 11111111 et 22222222 ne devraient déjà plus être utilisés depuis longtemps
Java 11 64 bit non supporté
Anticiper les changement de configuration si vous l’utilisez
Impossible de saisir le mot de passe de QSECOFR au démarrage
Après l’installation de la 7.6 sur la partition, et fort satisfait, je tentes de me loguer avec QSECOFR : informations d’authentification incorrectes !
Après vérification dans mon gestionnaire de mots de passe, nouvelle tentative : idem.
A la 3ème, profil désactivé …
Heureusement, j’ai toujours un profil clone de QSECOFR pour remédier à ces situations : je change le mot de passe de QSECOFR, et là cela fonctionne !
Bonne pratique : changer le mot de passe de QSECOFR avant la migration pour un mot de passe simple (quitte à déroger aux règles le temps de l’installation).
Problème de connexion sur tous les serveurs hôtes en TLS
Après installation de la 7.6, impossible de se connecter en telnet sécurisé, ni aux autres services
Dans DCM, allez dans le magasin *SYSTEM, puis gérer « Manage Applications Definitions », sélectionner l’application QIBM_QZBS_SVR_HOSTCNN et associez un certificat (en général le même pour l’ensemble des serveurs hôtes) :
Dès validation la connexion TLS fonctionne, pas besoin d’arrêter/redémarrer des services.
Ce fonctionnement est nécessaire pour la mise en œuvre du MFA, mais impact les services existants.
Tous les systèmes étant sécurisés depuis de nombreuses années, vous devriez être impacté …
En synthèse
A noter que l’ensemble des éléments est bien documenté, y compris les « détails » qui nous ont posés quelques soucis (exception du mot de passe non reconnu).
Une bonne préparation permet de réaliser une migration maitrisée, l’installation elle-même se déroule très bien et rapidement.
https://www.gaia.fr/wp-content/uploads/2017/02/team1.png600600Nathanaël Bonnet/wp-content/uploads/2017/05/logogaia.pngNathanaël Bonnet2025-08-05 09:55:002025-07-30 17:59:29Retour d’expérience installation IBM i 7.6
https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2025-08-04 10:53:552025-08-04 10:53:56V7R6, la liste des commandes supprimées