Il existe 2 solutions pour gérer vos spools sans passer par un écran 5250, je vais vous les présenter.
La première solution est ACS
Vous devez avoir le java bundle sur votre PC.
Vous cliquez sur Sortie imprimante
Vous avez une grande possibilité de filtres par défaut vous voyez les spools de votre utilisateur.
En faisant un clic droit vous avez un menu qui va vous permettre de gérer vos spools, vous pouvez facilement
télécharger votre spool , il sera converti au format PDF.
La deuxième solution est Navigator for i
Se service d’administration doit être démarré
Vous devez choisir « Mes sorties imprimante »
Vous arrivez sur les spools de votre utilisateurs
Vous pouvez Convertir en PDF Si vous choisissez exporter, le fichier obtenu sera au format TXT en choisissant avancé, vous pouvez gérer votre imprimante
Conclusion :
Les principales différences sont ACS Plus de filtres NFI Possibilité de convertir en txt Possibilité de gérer l’imprimante
• Voici selon nous 5 nouveautés à suivre dans cette Technology Refresh
• 1) La possibilité de faire des mises à jour sur des flux json avec la fonction JSON_UPDATE , ça fait longtemps que nos équipes râlaient, parce qu’elles devaient faire du bricolage quand on travaillait sur du flux json.
• 2) La possibilité d’exécuter des fonctions table remote, par exemple avec le service REMOTE TABLE, un object_statistics sur une partition distante. Ça peut avoir du sens pour automatiser des contrôles de cohérence.
• 3) Les nouvelles fonctions table, SYSTOOLS.AUDIT_JOURNAL_xx qui permettent de traiter les postes d’audit et plus globalement les nouveautés sur les audits comme la disponibilité d’IDS dans Navigator for i qui n’était pas présent dans la nouvelle interface.
• 4) SELF (SQL Error Logging Facility) qui va permettre de mettre au point les traitements SQL en attrapant de manière plus fine les erreurs et en pouvant les suivre dans le temps sans passer par un mode de debug parfois trop bavard en log.
• 5) Les nouveaux services pour administrer Object Connect (vous savez les commandes SAVRSTxxx, CHANGE_OBJECTCONNECT et OBJECTCONNECT_INFO), un petit rappel, Object Connect peut désormais fonctionner en IP. Disponible par PTF et c’est la dernière fonction SNA qui n’avait pas d’équivalent ip. Ces nouveaux services permettront d’administrer et d’avoir des informations sur ce qui s’exécute dans les échanges inter-machines.
• Rendez-vous en décembre pour les premiers tests.
https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2022-10-12 10:02:452022-11-06 09:29:32TR1 pour la 7.5
On est amené quand on fait des analyses à regarder les dates de source, on constate que ces dates sont à null pour tous les objets de type ILE.
Vous avez une vue QSYS2.PROGRAM_INFO qui permet d’avoir ces informations sur les programmes, un peu comme la commande DSPPGM.
Voici pourquoi : quand vous travaillez en OPM vous compilez des sources qui deviennent des programmes; quand vous travaillez en ILE, vous compilez des sources qui deviennent des modules, puis vous les assemblez pour créer des programmes et du coup une date de source sur un programme ILE ne veut rien dire.
En réalité un programme a un module qui s’appelle point d’entrée programme qui, quand on travaille en BND (CRTBND*), est le seul module placé dans qtemp qui est assemblé pour créer votre programme.
On voit donc que si on veut, on peut assimiler la date du source du programme à la date du module PEP, qui dans plus de 99 % des cas a le même nom que le programme. On a une deuxième vue permet d’avoir les modules par programme, QSYS2.BOUND_MODULE_INFO.
Il faudra donc combiner les 2 vues.
par exemple :
Pour les programmes ILE
SELECT a.PROGRAM_NAME, a.PROGRAM_TYPE, b.SOURCE_FILE_LIBRARY, b.SOURCE_FILE, b.SOURCE_FILE_MEMBER, b.SOURCE_CHANGE_TIMESTAMP FROM QSYS2.PROGRAM_INFO A join QSYS2.BOUND_MODULE_INFO B on a.PROGRAM_NAME = b.PROGRAM_NAME and A.PROGRAM_NAME = b.BOUND_MODULE and A.PROGRAM_LIBRARY = b.PROGRAM_LIBRARY WHERE a.PROGRAM_LIBRARY = ‘FADY’ and a.PROGRAM_TYPE = ‘ILE’
Pour les programmes OPM
SELECT a.PROGRAM_NAME, a.PROGRAM_TYPE, A.SOURCE_FILE_LIBRARY, A.SOURCE_FILE, A.SOURCE_FILE_MEMBER, A.SOURCE_FILE_CHANGE_TIMESTAMP FROM QSYS2.PROGRAM_INFO A WHERE a.PROGRAM_LIBRARY = ‘FADY’ and a.PROGRAM_TYPE = ‘OPM’
en faisant l’union des deux requêtes vous aurez les dates de tous vos programmes ILE et OPM.
Il y a sans doute d’autres solutions mais celle-ci est très simple à utiliser.
https://www.gaia.fr/wp-content/uploads/2022/08/IMG-20200712-WA0017.jpg1024768Ana Ramirez/wp-content/uploads/2017/05/logogaia.pngAna Ramirez2022-10-11 10:28:032022-10-14 10:15:33Date source de vos programmes
Lorsque l’on travaille sur une belle requête SQL, nous avons tendance à la garder et la sauvegarder en local sur notre poste (parfois dans l’IFS). Pour la partager à un collègue quoi de mieux qu’un bon vieux mail ?
Ou alors, on peut exploiter les Exemples personnalisés d’ACS pour mutualiser nos découvertes !
Exemples SQL sur ACS
Via l’Exécuteur de scripts SQL d’ACS, une multitude d’exemples est fournie. Pour y accéder trois possibilités :
Edition > Exemples > Insertion à partir d’exemples…
Ctrl + I
Via la petite icône SQL avec les deux flèches ci-dessous
On y retrouve tout un catalogue d’exemples relativement bien fourni :
Il suffit de rechercher les mots clés qui nous intéressent puis de cliquer sur Insertion, et enfin de remplacer les données variables de la requête.
Ajouter ses exemples personnalisés
Création d’un répertoire dans l’IFS
La première étape consiste à créer un répertoire commun dans l’IFS, le plus simple est de le créer dans /home/ qui est généralement déjà configuré comme partagé (donc visible pour Windows). Par la suite nous utiliserons le chemin suivant : /home/exemples_sql/. C’est ici que nous travaillerons pour créer nos exemples personnalisés.
Création d’un exemple
Il suffit de créer un nouveau source SQL, par exemple via ACS :
-- category: Exemples perso
-- description: Recherche d'un fichier dans l'ifs
SELECT *
FROM TABLE (
qsys2.ifs_object_statistics(start_path_name => '/')
)
WHERE path_name LIKE '%fichier.txt';
Le commentaire category permet de trier et regrouper vos exemples par usages. Le commentaire description correspond au texte indiqué dans la liste des exemples.
Une fois l’exemple terminé il suffit de sauvegarder le script dans le répertoire de l’IFS choisi : Fichier > Sauvegarde sous… > Fichier STREAM IFS.
Il est bien entendu toujours possible de modifier ou supprimer des exemples à partir de ce répertoire.
Intégration du répertoire d’exemples à ACS
Dans un onglet d’ACS, ouvrir le menu des exemples : Edition > Exemples > Insertion à partir d’exemples… Puis cliquer sur Préférences…
Cliquer ensuite sur Ajout
Indiquer ici le chemin vers le répertoire de l’IBM i qui contient les exemples SQL : \\<Nom de l’IBM i>\home\exemples_sql
Les exemples sont maintenant dans la liste avec les autres. Ils sont triés par catégorie (que l’on retrouve juste en dessous de la mire de recherche). Ils sont listés en dessus par description et un aperçu est disponible à droite.
Pour retrouver des exemples deux possibilités :
Choisir la catégorie à afficher en cliquant sur la catégorie actuelle (ici Exemples perso)
Utiliser la mire de recherche, qui affichera les exemples correspondant aux mots clés, toutes catégories confondues
https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2022-08-08 18:14:582022-08-08 18:14:59Créer une requête DTFX en SQL
Vous voulez faire du 5250 sur votre IBMi et que vos informations ne circulent pas en claire sur le réseau.
La première solution est de mettre en œuvre telnets
Vous devez vous connecter sur DCM Créer un certificat ou utiliser un déjà existant et l’associer à l’application
. Ensuite dans votre client, en principe ACS , indiquer que vous vous connectez en sécurisé .
.
La deuxième est de passer par SSH
vous avez un client 5250 (TN5250) installable dans les packages OPEN SOURCES vous n’avaez rien à faire coté serveur tout va se passer sur le service ssh qui doit être démarré d’abord vous devez vous connecter par une client SSH , putty ou celui ACS mais en principe si vous faites ca …
. Une fois connecté il vous suffira de lancer le client 5250 par la commande tn520 par exemple ==>tn5250 env.TERM=IBM-3179-2 ssl:neptune
.
.
Conclusion :
Ce n’est pas parfait mais vous n’avez pas besoin d’installer un client sur votre poste et en principe pas d’intervention à faire coté serveur ibmi
Vous connaissez index advisor, c’est une table que le système met à jour à chaque suggestion d’index, elle se nomme SYSIXADV et elle est dans QSYS2.
Vous pouvez l’interroger par SQL en faisant un simple select et en appliquant un filtre par rapport à une date de dernière utilisation et soit un nombre de fois recommandés ou un temps de reconstruction.
Exemple :
Depuis 1 mois et plus de 1000 fois
select * from qsys2.SYSIXADV where
LAST_ADVISED > current date – 1 month and times_advised > 1000
Depuis 1 jour et temps de reconstruction > 100 pour la bibliothèque GREFER
select * from qsys2.SYSIXADV where
TABLE_schema = ‘GREFER’ and LAST_ADVISED > current date – 1 days and ESTIMATED_CREATION_TIME > 100
Index agrégé
Il existe une vue sur cette table pour les index agrégés (clés composées) son nom est CONDENSEDINDEXADVICE et son nom court CONDIDXA.
Elle est souvent utilisée dans les outils comme gestion des schémas ou Visual Explain par exemple.
Mais vous pouvez l’utiliser directement dans vos requêtes comme SYSIXADV
Exemple :
Les index suggérés sur la bibliothèque GREFER
select * from qsys2.condidxa where TABLE_schema = ‘GREFER’
Ça vous évitera de créer des index dont les zones sont utilisées dans les autres.
Exemple
Pour la table LSTOBJ
Sur la table SYSIXADV :
Sur la vue CONDIDXA :
dans cet exemple à base d’un dspobjd on voit bien qu’un seul index est suffisant alors qu’ Advisor en suggère 3 de base.
rappel
l’index est un des principaux facteurs de performances de votre base de données , il faut surveiller ce que dit index advisor
https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2022-02-12 07:33:562022-04-06 10:10:54Placer un job dans QCTL
Vous installez de nouveaux PCs et vous désirez savoir les ports à ouvrir pour pouvoir accéder à vos partitions IBMi.
Voici une liste de ports à ouvrir en priorité
Pour ACS :
23 requis TELNET 449 requis arborescence du serveur IBM i 8470 à 8476 (voir RDI)
Pour RDi :
446 Requis (DRDA : connecteur base de données entre serveurs) 449 (as-srvmap) requis arborescence du serveur IBM i 3825 (Debugger) : débogage RDi 4300 (STRRSESVR) débogage via RDi (permet le rappel par l’IBM i du client RDi) 8470 (as-central) requis : Gestion des licences 8471 (as-database) requis base de données 8472 (as-dtaq) requis : serveur de file d’attente de données 8473 (as-file) requis : serveur de fichiers 8474 (as-netprt) serveur d’impression réseau 8475 (as-rmtcmd) requis : envoi de commandes 8476 (as-signon) requis : serveur ouverture de session
https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2021-12-10 09:42:312022-04-12 09:57:53Ports à ouvrir pour ACS et RDi