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 à 4 fois par an : en Bretagne et sur internet.

Pause-café #38

Octobre 2005


PHP, suite

En attendant PHP sur AS/400, (pratiquement annoncé officiellement, une session pour écrire un redbook sur PHP en V5R4 vient d'être ouverte chez IBM), continuons notre tour d'horizon, que vous l'utilisiez sur plateforme intel : Linux ou Windows  (pour Windows, voyez le projet WAMP) ou sous Pase sur AS/400 (voyez alors  www.deloli.net)

Pour  accèder à votre base de données DB2/400, vous utiliserez les routines ODBC :

  • sur Intel le plus simple est d'installer Client Access (y compris la version linux) qui contient un driver ODBC pour l'AS/400
  • elles sont présentes en natif sous OS/400 sous le nom de CLI

la connexion ODBC se fait avec les attributs suivants :

  • sur plateforme Intel (Windows/Linux)
    $db = odbc_connect($dsn , $user , $passwd)

    ou $dsn contient la chaîne de connexion
    "DRIVER=iSeries Access ODBC Driver;SYSTEM=AS400;DBQ=BIBLIOTHEQUE"
  • dans le monde OS400
    $db = odbc_connect($rdb , "" , "")

    ou $rdb contient le nom de la base locale tel que définit dans WRKRDBDIRE

    User et passwd sont ignorés, c'est le profil en cours (par défaut celui sur serveur Apache, sauf authentification)

    le nom de la "database" (ou bibliothèque pour nous), doit être fourni ensuite par :
    odbc_setoption($db, 1, SQL_ATTR_DBC_DEFAULT_LIB, $bibliotheque)

IBM, propose le code suivant pour définir un accès universel

 // If we report the OS as AIX or OS400, assume we're running under PASE
$isPase = (PHP_OS == "AIX" || PHP_OS == "OS400");                      


if (!$isPase) {
  $dsn = "DRIVER=iSeries Access ODBC Driver;SYSTEM=$isdb_system;DBQ=$isdb_database";
   $db = odbc_connect($dsn, $user, $pwd);
} else {                                                                         
   $db = odbc_connect($isdb_system, "", "");
   odbc_setoption($db, 1, SQL_ATTR_DBC_DEFAULT_LIB, $isdb_database)                                     
}                                                                                
cet extrait de code est proposé avec des exemples d'accès à DB2/400 en php sous linux, sur la page
http://www-1.ibm.com/servers/eserver/iseries/linux/odbc/guide/demoindex.html

que vous pouvez tester ici


Voyez la liste des fonctions ODBC à http://fr.php.net/manual/fr/ref.uodbc.php .

  • L'avenir des accès base de données sous PHP, s'appelle probablement PDO et sera livré avec PHP 5.1
(c'est disponible avec php 5.0 en mode expérimental)


il s'agit d'un objet, masquant la complexité et les disparités des différents drivers.  

 

il offre le grand avantage (pour nous) de proposer un accès aux procédures cataloguées avec gestion des paramètres en sortie ou en entrée/sortie (comme ADO ou .NET sous Windows)

Création d'une nouvelle instance de l'objet PDO (cela créé la connexion)


<?php
   $db 
= new PDO("odbc:AS400', 'user', 'pwd' );
   echo "Connecté !"
?>

Exécution d' une requête et affichage du résultat


$req = $db->prepare("select * from fichier ");

if ($req->execute()) {
while (($row = $req->fetch()) !== false) {
print_r($row);
}
}


Appel à une procédure cataloguée (le paramètre a été déclaré en sortie, c.a.d retourné par la procédure)

$req = $dbh->prepare("CALL procedure1(?)");
$req->bindParam(1, $retour, PDO_PARAM_STR, 4000); // N° , $variable, type, lg

// exécution
$req->execute();

print "valeur retourn&eacute;e $retour\n";


Voyez la liste des méthodes à http://fr.php.net/manual/fr/ref.pdo.php

et cette page IBM expliquant comment utiliser PDO avec DB2

 

Commander des PTFs sous Internet 

Vous pouvez utiliser les sites du support IBM, pour tout ce qui est gestion de PTF.

  • L'Option Technical Databasespermet d'accéder :
  1. aux problémes ouverts, ainsi qu'aux correctifs associés
  2. à la base des cumulatives et autres GROUP  PTF (PSP ou Preventive Service Planning)
  3. aux lettres d'accompagnement des PTF
  4. et à des bases de connaissance techniques


Regardons les APARs (Authorized Program Analysis Report, en clair un problème ouvert)

Vous pouvez les examiner par version ou bien lancer une recherche par mot-clé.



la difficulté est d'utiliser les mêmes mots que les techniciens IBM ouvrant l'incident (ici mgtc pour Managment Central)



voyez ensuite si le résumé correspond, voyez le détail de l'APAR pour être certain et trouver la PTF.

dans ce cas, la SI19545.

dans la foulée, regardons la "Cover Letter" de cette PTF :


Utilisez l'option Search




  • FixCentral permet de commander vos PTF.


Ici, vous avez le choix entre :
  1. customize PTF package (un ensemble personnalisé)
  2. customize cumulative PTF package (une cumulative en fonction de ce qui manque sur votre AS400)
  3. Group, Hyper, cumulatives fixes (une cumulative "normale")
  4. individual fixes (commande individuelle, ce que nous allons faire)


il faut ensuite vous signer avec votre ID IBM (voyez https://www-912.ibm.com/servlet/ProcessCust/newreg )




saisissez votre (vos) PTF, par le code SIxxxxxx

indiquez vos autres options



puis le type de téléchargement que vous souhaitez :

  • Immédiate download (téléchargement immédiat, dans 5/10 minutes vous appliquez vos ptf)
    attention, la taille maxi est dépendante du débit que vous indiquez
  • Download CD-ROM
    Une (ou plusieurs) images de CD sont fabriquées et placées sur un serveur FTP
  • Mail Order on CD-ROM
    fabrication de CD physiques et envoi par courrier


Continuons notre commande individuelle, une applet est téléchargée sur votre poste et vous demande les moyens
de ce connecter à votre AS/400

Renseignez le nom ou l'adresse IP, et profil/mot de passe.

les informations sont récupérées de votre serveur (voyez WRKCNTINF / option 2)



et hop, c'est parti.


la PTF est placée sur votre AS/400 en SAVF, comme le résultat d'un SNDPTFORD, il vous reste à :
  1. vérifier les conditions d'application sur la lettre d'accompagnement
  2. la charger par LODPTF
  3. et l'appliquer par APYPTF
Regardons maintenant une commande de cumulative personnalisée

signez vous


il faut la liste des PTF déjà présentes, de façon à faire la liste des PTF manquantes.

pour cela, l'application Java, va utiliser la notion de collecte de gestion centralisée.


Si aucune collecte n'est présente, ou si elle est trop ancienne, on vous propose de réactualiser




Indiquez ensuite le niveau à atteindre :


ici, la production d'images cd CD a été demandée, indiquez un nom de répertoire (sur le serveur IBM)



Pour terminer, une commande de cumulative "standard".


choisissez, soit la cumulative, soit un GROUP PTF


la SF995x0 doit être commandée seule, elle est livrée avec la dernière HYPER et le GROUP DATABASE.


Un écran récapitulatif est affiché (ici, la production d'images cd CD, ISO ou UDF, suivant la version)


vous recevrez rapidement, le mail suivant :
 >> Do not reply to this note. It is from a Service Machine ONLY <<

COERVER = 34-STATUS
SOURCE  = EMAIL
COERNBR = 334831
PROBNBR = 17876
BO_NMBR = 999
CNTYNBR = 706
FRMNODE = BLDISDMC
FRMUSER = R370ACK
TO_NODE = NONE
TO_USER = NONE
RECDATE = 20050921084305
TEXT    = SDF Order# B6268326 was Received at 08:43:05 09/21/2005
TEXT    = *-*-*-*-*-*-*-*-*-* Internet Webpage *-*-*-*-*-*-*-*-*-*
TEXT    = If you have access to the Internet, IBM has a webpage
TEXT    = available for you to check your order's status. The URL
TEXT    = is-  https://www14.software.ibm.com/webapp/ssos/order_status
NBRDATA = 0017

puis, une fois les images disponibles :

COERVER = 34-STATUS
SOURCE  = EMAIL
COERNBR = 334831
PROBNBR = 17876
BO_NMBR = 999
CNTYNBR = 706
FRMNODE = BLDISDMC
FRMUSER = R370ACK
TO_NODE = NONE
TO_USER = NONE
SHPDATE = 20050921084924
TEXT    =
TEXT    =          --> YOUR FIX PACKAGE IS READY <--
TEXT    =
TEXT    =
TEXT    = SDF Order# B6268326 is ready 20050921
TEXT    =
TEXT    = Thank you for using the FTP server for your support
TEXT    = needs. If you received this notice in error, please
TEXT    = disregard. You will not be receiving any additional
TEXT    = correspondence related to this transaction.
TEXT    =
TEXT    = ------------------------------------------------------
TEXT    =   Note: The fix package will be deleted in 48 hours.
TEXT    = ------------------------------------------------------
TEXT    =
TEXT    = INFORMATION YOU WILL NEED TO RETRIEVE YOUR ORDER
TEXT    =
TEXT    =  Your userid         --> asj8nka
TEXT    =  Your password       --> tjn8ky6d
TEXT    =  FTP server          --> inetsd01.boulder.ibm.com
TEXT    =  Transfer type       --> ascii/binary
TEXT    =  Directory on server --> /b6268326/334831/c
TEXT    =  Files to get        --> ftpSF99530.txt
TEXT    =                      --> ilstSF99530.txt
TEXT    =                      --> SF99530_1.bin
TEXT    =                      --> SF99530_2.bin
TEXT    =                      --> SF99530_3.bin
TEXT    =                      --> SF99530_4.bin
TEXT    =                      --> SF99530_5.bin
TEXT    =                      --> SF99530_6.bin
TEXT    =                      --> SF99530_7.bin
TEXT    = Notes:
TEXT    = 1) The ftpSF99530.txt file contains the number of bytes in
TEXT    =    each file.
TEXT    = 2) The ilstSF99530.txt file contains information and
TEXT    =    instructions for your order.
TEXT    = 3) Each " .bin" file contains one virtual CD image.
TEXT    =
TEXT    = *************************************************************
TEXT    = * Vital PTF information:                                    *
TEXT    = * Application of PTFs within this PTF package may disable   *
TEXT    = * or render ineffective programs that use system memory     *
TEXT    = * addresses not generated by the IBM translator, including  *
TEXT    = * programs that circumvent control technology designed to   *
TEXT    = * limit interactive capacity to purchased levels. These     *
TEXT    = * PTFs may be prerequisites for future PTFs. By applying    *
TEXT    = * these PTFs you authorize and agree to the foregoing.      *
TEXT    = *************************************************************
TEXT    =
TEXT    = HOW TO RETRIEVE YOUR FIX PACKAGE
TEXT    =
TEXT    = You may FTP the order to your system using any method
TEXT    = that you prefer.  Three methods are listed below.
TEXT    =
TEXT    = o DOWNLOAD USING A WEB BROWSER
TEXT    =   Click on the link below.
TEXT    =
TEXT    = ftp://asj8nka:tjn8ky6d@inetsd01.boulder.ibm.com/b6268326/334831/c
TEXT    =
TEXT    =   Download the following files to your local PC drive (or to
TEXT    =   a mapped drive on the IFS if you will be using image
TEXT    =   catalogs):
TEXT    =     ftpSF99530.txt
TEXT    =     ilstSF99530.txt
TEXT    =     SF99530_1.bin
TEXT    =     SF99530_2.bin
TEXT    =     SF99530_3.bin
TEXT    =     SF99530_4.bin
TEXT    =     SF99530_5.bin
TEXT    =     SF99530_6.bin
TEXT    =     SF99530_7.bin
TEXT    =
TEXT    = o DOWNLOAD USING OPERATIONS NAVIGATOR
TEXT    =   If you select this option, you need to have an Operations
TEXT    =   Navigator plug-in installed on your PC.  The plug-in is
TEXT    =   available at:
TEXT    =   http://www-912.ibm.com/supporthome.nsf/document/27321011
TEXT    =
TEXT    =  After installing the plug-in, follow the steps below.
TEXT    =   1. Expand "Management Central".
TEXT    =   2. Expand "Endpoint Systems".
TEXT    =   3. Select the system where you want to apply the
TEXT    =      fixes.
TEXT    =   4. Expand "Configuration and Services".
TEXT    =   5. Right click on "Fixes Inventory".
TEXT    =   6. Click on "Get fixes from IBM".
TEXT    =   7. Select "Download fixes" on the wizard, and enter
TEXT    =      the following URL:
TEXT    =  ftp://asj8nka:tjn8ky6d@inetsd01.boulder.ibm.com/b6268326/334831/c
TEXT    =
TEXT    =   8. Download the following files to your local PC drive (or
TEXT    =      to a mapped drive on the IFS if you will be using image
TEXT    =      catalogs):
TEXT    =       ftpSF99530.txt
TEXT    =       ilstSF99530.txt
TEXT    =       SF99530_1.bin
TEXT    =       SF99530_2.bin
TEXT    =       SF99530_3.bin
TEXT    =       SF99530_4.bin
TEXT    =       SF99530_5.bin
TEXT    =       SF99530_6.bin
TEXT    =       SF99530_7.bin
TEXT    =
TEXT    = o DOWNLOAD USING THE FTP COMMAND FROM OS/400
TEXT    =   Select this method only if you will be using image catalogs.
TEXT    =   In the example below, the directory is named "fixes".
TEXT    =   You must store the files in a path within the "root" (/)
TEXT    =   directory in IFS.
TEXT    =     ftp inetsd01.boulder.ibm.com
TEXT    =     ftp> Name: asj8nka
TEXT    =     ftp> Password: tjn8ky6d
TEXT    =     ftp> namefmt 1
TEXT    =     ftp> lcd /fixes
TEXT    =     ftp> ascii
TEXT    =     ftp> cd /b6268326/334831/c
TEXT    =     ftp> get ftpSF99530.txt
TEXT    =     ftp> get ilstSF99530.txt
TEXT    =     ftp> binary
TEXT    =     ftp> get SF99530_1.bin
TEXT    =     ftp> get SF99530_2.bin
TEXT    =     ftp> get SF99530_3.bin
TEXT    =     ftp> get SF99530_4.bin
TEXT    =     ftp> get SF99530_5.bin
TEXT    =     ftp> get SF99530_6.bin
TEXT    =     ftp> get SF99530_7.bin
TEXT    =     ftp> quit
TEXT    =
TEXT    = HOW TO INSTALL THE FIXES
TEXT    =
TEXT    = Read the information in the ilstSF99530.txt file. Then
TEXT    = follow the instructions on how to install fixes at:
TEXT    = http://www-912.ibm.com/supporthome.nsf/document/27321011
TEXT    =
TEXT    = INFORMATION ABOUT YOUR ORDER
TEXT    =
TEXT    =
TEXT    = Package contained 559 fixes with 4,053,242 Kilo-bytes of data
TEXT    = Total amount of data shipped was 675,283 Kilo-bytes
TEXT    = Package shipped on 002 CDROM volume(s)
TEXT    = SDF Order# B6268326 was Shipped at No:ne: 09/21/2005 NBRDATA = 0152
TEXT    =
TEXT    = Your order that was placed can be viewed at:
TEXT    = http://www-912.ibm.com/eserver/support/fixes/OrderFixes?family=0&fixcart34831
TEXT    =
TEXT    =
TEXT    = The list of PTFs that were ordered:
TEXT    =
TEXT    = ^MH00111 ^ PREREQ OF ^SI15234 ^Sup'd by MH00113

(suit la liste des PTF)

Glossaire :

PREREQ : Pre-Requisite
PTF préalable à l'installation d'une autre PTF (ici SI15234)
COREQ : Co-Requisite
PTF devant impérativement être installée en même temps qu'une autre PTF
Sup'd : Superseded
PTF remplacant une autre PTF (pas forcement en erreur)
En cas de problèmes, voyez la page suivante

Que faire des images ISO

1/ Gravez les avec un produit PC

2/ utilisez la notion (récente) de CD-ROM virtuel sur OS/400 et de catalogue d'images

                                                                           
 Nouvelles commandes (V5R20) liées aux objets *IMGCLG                                 
                                                                           
        CRTIMGCLG                                                          
                                                                           
        par exemple :                                                      
                                                                           
         CRTIMGCLG IMGCLG(cdimg) DIR('/img') CRTDIR(*YES)                  
                                                                           
        puis ajout de CD par                                               
                                                                           
         ADDIMGCLGE IMGCLG(cdimg) FROMDEV(OPT01)     (à exécuter x fois)   
                                                                           
        la commande PWRDWNSYS admet maintenant :                           
                                                                           
             RESTART(*yes) IPLSRC(*IMGCLG) IMGCLG(cdimg)                   
                                                                           
        et, VFYIMGCLG IMGCLG(cdimg) TYPE(*UPGRADE) vérifie que l'image     
            contient tout ce qui permet de changer de version correctement.

                                                                        
  Pour tout autre utilisation, vous devez :                             
                                                                        
     a/ créer une unité optique virtuelle                               
                                                                        
         CRTDEVOPT                                                      
                                                                        
          exemple : CRTDEVOPT DEVD(OPT02) RSRCNAME(*VRT) TYPE(632B)     
                                                                        
     b/  mettre l'unité VARY ON (WRKCFGSTS)                             
                                                                        
     c/ monter l'image de CD sur cette unité virtuelle                  
                                                                        
         LODIMGCLG                                                      
                                                                        
          exemple : LODIMGCLG IMGCLG(cdimg) DEV(OPT02) OPTION(*LOAD)    
                                                                        
                                        (option accepte aussi *UNLOAD)  
                                                                        
    vous trouverez également les commandes suivantes :                  
                                                                        
         RMVIMGCLGE, WRKIMGCLG, CHGIMGCLG, et DLTIMGCLG                 

    
 Cette option est intéressante avec Fix Central.

  • Téléchargez les fichiers (.bin)  sur l'AS/400
  • Passez les commandes suivantes
- placez votre(vos) fichier(s) .bin dans "/iptf" (par exemple)
                                                             
- CRTIMGCLG IMGCLG(PTFCATALOG) DIR('/ptfcatalog') CRTDIR(*YES)
     TEXT('Catalogue d''images pour iPTF')                   
                                                             
- ADDIMGCLGE IMGCLG(PTFCATALOG) FROMFILE(/iptf/iptfxxx.bin)  
                                TOFILE(iptfxxx.bin)          
                                                             
    (cde à passer pour chaque fichier .bin)                  
                                                             
- LODIMGCLG IMGCLG(ptfcatalog) DEV(OPT02) OPTION(*LOAD)      
                                                             
- VFYIMGCLG IMGCLG(ptfcatalog) TYPE(*PTF) SORT(*YES)         
                                                             
  •  installez vos ptf normalement, mais à partir de OPT02                                                    
   L'installation doit se dérouler normalement.   


  • pour défaire
                                                                          
     LODIMGCLG IMGCLG(ptfcatalog) DEV(OPT02) OPTION(*UNLOAD)              
                                                                          
                                                                          
     vérifiez le N° (l'index) de votre(vos) fichiers image dans le catalogu
      par WRKIMGCLGE ptfcatalog                                           
                                                                          
     enlevez l'image par                                                  
                                                                          
      RMVIMGCLGE IMGCLG(PTFCATALOG) IMGCLGIDX(1) KEEP(*NO)                
                                                                          
       (autant de fois qu'il y a de fichiers images)                      
                                                                          
                                                                          
     puis détruisez le répertoire contenant les fichiers .bin  ou son contenu (/iptf, dans notre exemple).                                   
 
Dernier point, disponible en V5R30 uniquement

-->  générer des images de CD, suivez la procédure suivante :

CRTIMGCLG test DIR('/tmp')

ADDIMGCLGE test FROMFILE(*NEW) TOFILE(image.udf)

LODIMGCLG test DEV(optvir)

enfin

INZOPT DEV(optvir)

SAVLIB xxxx DEV(optvir)

  • transférez le fichier en question sur votre poste, il est au format UDF (iso 13346) et non ISO (iso 9660),
    • trouvez un logiciel de gravure supportant ce format 
    • ou utiliser ISOBUSTER qui convertit UDF en ISO.

Dernière minute, quelques rumeurs concernant la prochaine version.

  1. IBM vient de sortir de nouveaux modèles P5, certains à base d'un nouveau processeur POWER5+ à 1,9 Ghz.
    Tout porte à croire qu'il y aura une gamme intermédiaire (mais quand ?) utilisant ces processeurs en attendant le POWER6 pour 2007.
  2. Collaboration très avancée d'IBM avec ZEND, pour proposer une version PHP intégrée à la V5R40, probablement disponible en Janvier 2006, mais peut-être aussi via PTFdès la V5R30.
  3. WDS client V6 disponible, il est basé sur Eclipse 3 et peut donc intégrer tous les plug-ins récents proposés pour cette plateforme (voyez particulièrement http://sourceforge.net/projects/phpeclipse/ )
  4. Avancées SQL dans le sens d'une plus grande standardisation.
  5. Meilleure intégration RPG4 et SQL, le SQL pourrait être saisi en format libre directement dans le code RPG4 en format libre lui aussi (entre /free et /end-free) sans "marqueur" (EXEC SQL/END-EXEC)
  6. Intégration au RPG de standards comme les services WEB (Web services) autour des normes SOAP et WSDL.
    (voyez cet article sur les Architectures Orientées Service, SOA in English...)
                                                                    
Copyright © 1995,2005 VOLUBIS