pause-café
destinée aux informaticiens sur plateforme IBM i.
Pause-café #80
Nouveautés récentes
TR5 (certaines fonctions sont communes à la TR9 de la 7.2)
- Nouvelle option d'ACS : Outils/Open Source Package Managment (en fait YUM, voir ci-dessous)
- Autres nouveautés :
- JTOPEN, le driver JDBC supporte la connexion à un serveur de secours, si le lien principal tombe
- le compilateur SQLRPGLE sera plus "bavard" quand une variable ou une DS n'est pas utilisable dans une instruction SQL
Messages modifiées
SQL0312 Reason: The variable is a dimensioned array.
SQL0312 Reason: The host structure is a dimensioned array.
SQL0312 Reason: No declaration for the variable exists, the declaration is not within the current scope,
or the variable does not have an equivalent SQL data type.SQL0312 Reason: A member of the host structure is a result set locator.
SQL0312 Reason: A member of the host structure is dimensioned.
SQL0312 Reason: A member of the host structure does not have an equivalent SQL data type.
- quelques nouveautés DB2
- Nom de correllation facultatif avec les fonctions table
ici "as t" devient optionnel
- fonctions et services amméliorés (voir les détails)
- par exemple NOW() admet maintenant une précision (entre 0 et 12) sur le timestamp en cours
- VARCHAR_FORMAT (ou TO_CHAR) qui transforme (avec beaucoup de puissance)
- caractère vers varchar
- numérique vers varchar
(voir http://www.volubis.fr/forum/viewtopic.php?t=757)- Timestamp vers varchar
- dans ce dernier cas, ont été ajoutés
- Ms pour millisecondes
- Us pour microsecondes
- EXTRACT (qui extrait une partie d'une date) admet plus d'options, dont :
- EPOCH retourne le nbr de secondes depuis 1970-01-01 00:00:00.00
- MILLENNIUM retoune le millénaire (2 pour 2018)
- CENTURY retourne le siécle (20 pour 2018)
- DECADE retourne le nombre de décades (201 pour 2018)
- WEEK le n° de semaine
- DOW le jour de la semaine (1=Dimanche)
- DOY le jour dans l'année
- nouvelle vue JOB_DESCRIPTION_INFO retournant des infos sur une JOBD
- nouvelle vue OUPUT_QUEUE_ENTRIES_BASIC retournant des infos sur tous le spools du système
- nouvelle procédure Omnifind SYSTS_SEARCH_RETURN_TO_CALLER pour faire des recherches dans l'IFS par PGM
il existait déjà une procédure SEARCH, que nous utilisons ici
mais celle-ci rend plus simple l'utilisation du result sets par une procédure SQL (voir l'exemple sur developerWorks)- RDI 9.6.0.2
- la vue Table évolue pour ressembler un peu plus à PDM
Affichage de la partie saisie de critères
La 2ème nouvelle icone permet de placer la partie Saisie des critèresà gauche de la fenêtre
Remarquez que vous pouvez saisir :
• des critères "à la PDM"
• mais aussi réutiliser vos filtres RSE
D'ailleurs vos critères peuvent être sauvegardés en tant que filtre
et vous les retrouverez dans la partie arborescente
Une fois vos critères renseignés, voici ce que vous verrez, notez la zone Option, qui fonctionne comme PDM
Y compris l'option 12 qui descend du niveau biliothèque aux objets, du niveau fichier source aux membres.
- 9.6.0.4 (Juillet 2018)
- le flag indiquant une déclaration non utilisée dans le code fonctionne avec les déclarations de fichiers et les constantes
- 9.6.0.5 (Décembre 2018)
- On peut se déplacer au curseur dans la grille de la vue table
- la touche <espace> passe en mode édition, les colonnes éditables (nom et texte, par exemple)
-
ACS
Juin 2018 (1.1.8 )
Attention, cette version impose Java 8 !
la version 1.1.8.1 admet java 8 , 9 , 10 et maintenant 11 (seules les versions 8 et 11 sont stables)
vous pouvez utiliser OpenJ9 d'Eclipse basé sur OpenJDK
(les mise à jour de Java ©Oracle) devenant payantes à partir de Janvier 2019.
téléchargez le JDK sur : https://www.eclipse.org/openj9/
Dézippez le fichier Zip dans \Program files\java\votre-version (dans nos exemples OpenJDK8)Allez dans Paramètres système avancés
- Windows 7 : panneau de config./système/paramètres système avancés
- Windows 8/ 10 : recherchez "paramètres système avancés"
- modifiez la variable d'environnement PATH, pour ajouter devant C:\Program files\java\openJDK8\bin;
- ajouter la variable JAVA_HOME avec C:\Program files\java\openJDK8\
Associez cette version de java aux fichiers .jar, par (en mode commande) : - assoc .jar jarfile
- ftype jarfile="C:\Program files\java\OpenJDK8\bin\javaw.exe" -jar "%1" %*
Vérifiez
- Lancez ACS par un fichier .bat ou en cliquant sur acsbundle.jar
-
Vous pouvez aussi installer le jre dans le répertoire de acslaunch_win-64.exe : \Start_Programs\Windows_x86-64 (64 bits)
ou \Start_Programs\Windows_i386-32 (version 32 bits)
Vous le trouverez dans le répertoire OpenJDK8 que vous avez dézippéici C:\Program files\java\OpenJDK8
Il faut copier l'ensemble du répertoire jre
Ainsi c'est OpenJ9 qui sera utlisé lors du lancement
Lors du lancement vous gagnerez en légèreté:
Si vous préférez utiliser la version 11, OPENJ9 n'est disponible qu'en version 64 bits,
pour la version 32 bits IBM conseille d'utiliser HotSpot 32bit JVM
https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot
voici ce qu'annonce Eclipse
- Rappel sur le lancement d'ACS :
- Vous pouvez lancer directement une fonction par /plugin , par exemple
- start javaw -jar <chemin>\acsbundle.jar /PLUGIN=ifs /system=as400
- start javaw -jar <chemin>\acsbundle.jar /PLUGIN=splf /system=as400
- start javaw -jar <chemin>\acsbundle.jar /PLUGIN=DB2TOOLS /system=as400 (perf.Center)
- start javaw -jar <chemin>\acsbundle.jar /PLUGIN=DB2 /system=as400 (Schémas)
- start javaw -jar <chemin>\acsbundle.jar /PLUGIN=rss /system=as400 (Scripts SQL)
- Vous pouvez lancer ACS depuis une page web, sur l'IBM i :
- Créez un certificat , par
keytool -genkeypair -alias acsbundle.cer -keypass certpassword -validity 730
-keystore acsbundle -storepass storepassword - créez une nouvelle version du fichier .jar signée
jarsigner -keystore /javakeystore/acsbundle.cer -storepass storepassword -keypass
certpassword -signedjar acs.jar acsbundle.jar acsbundle - Créez un fichier .jnlp, par exemple
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" codebase="http://votre-serveur-web/acs">
<information>
<title>IBM i Access Client Solutions (Production Version 1.1)</title>
<vendor>SOCIETE</vendor>
<offline-allowed/>
</information>
<resources>
<jar href="acs.jar"/>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"
max-heap-size="1g" java-vm-args="-Djava.security.manager=none"/>
</resources>
<application-desc main-class="com.ibm.iaccess.launch.AcsLaunchPad">
<argument> /PLUGIN=5250</argument><argument> /SYSTEM=AS400</argument>
<argument> /wsid=&COMPN*=</argument>
<argument> /wide</argument>
<argument> /nosave</argument>
</application>
<security>
<all-permissions/>
</security>
</jnlp> - Ajoutez le directive AddType application/x-java-jnlp-file .jnlp à httpd.conf
- Vous verrez
et, si vous acceptez, directement votre émulateur
- Créez un certificat , par
- Vous pouvez lancer directement une fonction par /plugin , par exemple
-
Vous pouvez aussi faire une installation centralisée, (uniquement sous Windows) , qui peut se dérouler sur 3 modes :
- Installation depuis un serveur sur le PC, choix des options à installer
- Configuration depuis un serveur, installation sur le PC.
- Configuration depuis le serveur, installation de raccourcis sur le PC pointant sur le serveur
Placez le fichier sur un serveur (par ex: /QIBM/USerData/Access/ACS, après l'avoir créé par MKDIR)et dézippez par :
QSH CMD('cd /QIBM/UserData/Access/ACS;
jar xvf /QIBM/UserData/Access/ACS/IBMiAccess_v1r1.zip')lancez (dans Windows_Application)
- install_acs_32.js pour une plate-forme et un JVM 32 bits
- install_acs_64.js pour une plate forme ET une JVM 34 bits
dans tous les cas, 32 bits fonctionne sur une 64, pas le contraire.
•Pour une installation locale :et répondez aux questions suivantes :
Utiliserez vous l'émulateur
Si oui, voulez vous que ACS soit responsable des fichiers .WS de l'ancienne version Windows
Utiliserez vous la visualisation des spools ?
Le transfert de fichier ?Navigator for I (version Web)
Telnet avec SSL (Telnets) ?
Accéderez vous à la console HMC (ou LAN)
Commandes à distance ?
Voulez vous des raccourcis sur le bureau ?
->
Des copies de fichiers sont faites
et voilà (ici nous avons répondu non à SSL et HMC)
•Pour une configuration sur le serveur, lancez avec l'option AdminConfig
Répondez alors aux questions suivantes :
Si vous souhaitez re-paramétrer le produit
- Oui(Yes) si vous souhaitez repartir sur un fichier Acsconfig.properties tout neuf (extrait de acsbundle.jar)
- Non(No) si vous avez paramétré Acsconfig.properties et que vous souhaitez le conserver
Ici vous avez le choix entre les deux types d'installation
- Oui : configuration centralisée. Lors de l'installation, seuls des raccourcis seront créés
Pas de mise à jour à faire sur les PC (la mise à jour sur le serveur suffit)
Temps de réponse sans doute inférieurs (même si la mise en cache est activée par défaut et devrait limiter cela)
- Non : vous configurez les options installable par les utilisateurs, mais l'installation se fera sur le PC
Il faut relancer install_cas_xx.js pour mettre à jour en cas de nouvelle version.
Si vous choisissez une installation locale :
L'utilisateur peut-il encore choisir les options ou pas (installation silencieuse)?
si vous répondez Nonpuis ,
etc...
Pour terminer
Revenons à la version 1.1.8 : nouvelle option propriété sur les fichiers de l'IFS
De nombreuses options "Database"- Schéma
- Choix de la convention d'appellation
Edition/préférence
Gestion des transactions (comme WRKCMTDFN)
Nouvelle option propriété sur les tables et les schémas
Gestion des verrouillages (objets et enregistrements) sur une table
Ainsi qu'un accès direct aux postes du journal
- SQL performances Center
Accès au détail SQL pour un travail (déjà présent dans l'option Schéma/Actions)
Toutes les colonnes sont désormais critère de tri
- Choix de la convention d'appellation
-
- Vous pouvez obtenir de nouveaux produits Open Source sous forme de RPM
- L'utilisation de cet utilitaire et la recherche de dépots est désomais intégré à ACS version 1.1.8
L'installation de YUM aussi
Nouveaux utilitaires (ils sont tous placés dans QOpenSys/pkgs/bin)- lftp (voir http://momh.fr/tutos/Linux/lftp)
Transfert de fichier en mode commande utilisant ftp, sftp, http, et d'autres
Pour utiliser un protocole particulier, indiquez le dans l'URL
- updatedb et locate
permettant de retouver rapidement un fichier- updatedb créé une base de données contenant l'ensemble des fichiers du système (basé sur find)
(les erreurs concernent des fichiers "lockés" ou des nom de répertoire en Unicode)
plus de 1 heure sur notre système la première fois, 20 Mn ensuite.
D'ailleur, nous avons inséré ce CL dans nos travaux planifiés
- locate un-nom permet ensuite de retrouver rapidement un fichier
Pour les objets de QSYS, tapez bien le nom en MAJSUCULES
- updatedb créé une base de données contenant l'ensemble des fichiers du système (basé sur find)
- sed (voir https://fr.wikipedia.org/wiki/Stream_Editor)
- vim (basé sur VI, assez peu convivial)
- ou nano (basé sur Pico, voyez https://fr.wikipedia.org/wiki/GNU_nano )
Téléchargez le (si besoin) depuis ACS
puis lancez le, depuis Putty (pas sur un terminal 5250, qui n'est pas reconnu)
Aide (Ctrl+G) - Pour éditer un fichier
- Enfin Midnight Commander, gestionnaire de fichier en mode commande
- un conseil ajoutez ces lignes
PATH : permet d'avoir /QopenSys/pkgs/bin dans les répertoires par défaut
LC_ALL de préciser le code page (Français dans notre exemple)
dans :- /QOpensys/etc/profile : elles impactent tout le monde
- /HOME/<user>/.profile : elles impactent <USER>
C'est un éditeur pleine page
Ctrl+O (Write Out)
Recherche (Ctrl+W)
Sortie (Ctrl+X)
- Le menu peut être utilisé à la souris
ici, le menu option, permettant de changer la configuration et l'apparence
- Les menus Left et Right permet de choisir ce qui doit être affiché (à Gauche/à Droite)
par exemple un site FTP
- lftp (voir http://momh.fr/tutos/Linux/lftp)
- Vous pouvez même déclarer des repository supplémentaires en ajoutant un fichier .repo dans /QOpenSys/etc/yum/repos.d
(voir https://bitbucket.org/ibmi/opensource/src/7d5f5987793bbffac8472f3123f60c6560075186/docs/yum/3RD_PARTY_REPOS.md)
- http://www.the-i-doctor.com propose une installation de lynx (navigateur web en mode texte)
- Celui-ci www.qseco.fr permet une installation de Mono (moteur .net en mode Opensource)
Vous trouverez ici des exemples fonctionnant sur IBMi : https://github.com/richardschoen/MonoOniSamples - YUM propose aussi de faire évoluer Node.js
Node.JS est apparu avec l'option 1 de 5733OPS
- Node.JS version 4 est installé par la PTF SI59404 et l'option 5 de 5733OPS
- les deux versions 0.12 et 4 cohabitent
- Vous pouvez choisir la version "active" par /QOpenSys/QIBM/ProdData/OPS/Node4/bin/nodever.sh
- un-numéro : vous indiquez la version de Node.js à utiliser
- list, la liste des versions disponibles vous est affichée pour faire un choix
- Node.JS V4 est plus rapide et utilise ECMAScript 2015 (ES6), voir https://nodejs.org/en/docs/es6/
- /QOpensys/etc/profile : elles impactent tout le monde
- /HOME/<user>/.profile : elles impactent <USER>
- soit installation dans le répertoire global
npm i <le package> -g
pour connaire le répertoire d'installation:
NPM config get prefix
- soit vous vous placez dans la répertoire de l'application
npm i <le package>
- cela créé un répertoire nodes_modules
- soit dans le répertoire de node.js
- soit dans le répertoire de l'application
Le répertoire du package (dans notre exemple jshint) contenant lui-même :
- soit dans le répertoire de node.js
- un répertoire par module nécessaire (npm s'occupe complément de ces dépendances)
- un fichier package.json décrivant le package
Le script étant lui même placé dans le répertoire bin de la version - https://www.npmjs.com/package/idb-connector
le connecteur node.js à DB2 (en mode open source), utilise la technique des "callback"
- https://www.npmjs.com/package/idb-Pconnector
connecteur node.js à DB2 en mode synchrone
- https://www.npmjs.com/package/itoolkit
Utilisation du XMLtookit
- et plus généralement voyez ce site https://bitbucket.org/account/user/litmis/projects/IIOSP
- installez idb-connector
- Modifier, s'il le faut, les ports IP (8080 et 8443)
placez vous dans le répertoire et Lancez par node index.js
Les différents tableaux de bord utilisent SQL as a service pour accèder aux informations système
- Installez le par npm
npm i -g pm2
Placez vous dans la répertoire /bin de node.js (dépendant de la version)
- pm2 start, démarre une application
- pm2 list, liste les applications que pm2 a démarré
pm2 show, montre du détail concernant une application
pm2 stop, arrête une application
plus de documentation ici : https://pm2.io/doc/en/runtime/overview
Aujourd'hui le produit 5733OPS est stabilisé et remplacé par YUM
ce dernier permet d'installer Node.JS versions 8 et 10
Les packages installés par YUM sont placés /QOpenSys/pkgs/bin
un conseil ajoutez ces lignes :
PATH : permet d'avoir /QopenSys/pkgs/bin dans les répertoires par défaut
LC_ALL de préciser le code page (Français dans notre exemple)
dans :ensuite, si vous tapez nodever, vous verrez
résultat
vous reste à installer des packages, par le gestionnaire de packages de node.js NPM
Pour installer un package :si le package est écrit un "full" node.js, l'installation sera automatique
si le package (ou l'une des ces dépendances) est "binaire", npm télécharge le code (C++)
et lance node-gyp pour le compiler (vous devez avoir installé Python et Gcc)
packages conseillés
Vous pourrez ainsi télécharger DashForIBMi
ET aussi PM2 , un Process Manager (lanceur) pour Node.js
le blog de Jessie Gorzinski sur les 10 nouveautés de 2018 (dont YUM)
- Vous pouvez obtenir de nouveaux produits Open Source sous forme de RPM
Enfin, dernière mise à jour d'ACS Novembre 2018 (1.1.8.1 )
- variable dans le titre et les pieds de page des impressions de session 5250
- &D : date du jour
- &T : l'heure
- &P : N° de page
- &N : retour chariot
- && : le &
- Possibilité de désactiver la bufferisation clavier
- Performances Center
- Edition/Inclusion permet de filtrer les moniteurs
Sur le nom
Sur la date
Fichier/Nouveau propose une connexion à un autre système
- Edition/Inclusion permet de filtrer les moniteurs
- Option Schéma
- Choix de l'ASP et du système, lors de la création de schéma
- Modification possible des Alias , des droits sur les lignes, des masques de colonne (RCAC)
- Choix de l'ASP et du système, lors de la création de schéma
- Les meilleures évolutions sont dans le gestionnaire de scripts SQL
- Mise en place de la position des colonnes
clic droit sur le résultat/Colonnes ou Drag&Drop à la souris - Choix des entêtes (nom et/ou Label)
- Il est plus simple de positionner le curseur dans une colonne pour copier la donnée
- si vous indiquez que la requête est "for update", les données sont modifiables