Registration Facility Nouvelle fonction de l'OS permettant d'associer à une fonction logiciel un pgm de contrôle entreprise, chargé de tracer ou valider l'action. DEUX NOTIONS : - Exit POINT : association d'un point d'appel de programme à une action logiciel. ce point d'appel est nommé sur 20 caractères. Exemple : QIBM_QPWSF_File_Serveur la fonction serveur de fichier de Client/Access est reconnue, il est possible de lui associer un pgm de validation. - APIs : QUSRGPT permet de définir un point d'exit. + paramètres : nom du point d'exit, modifiable ou non action et format des données transmises au pgm nombre maximal de programes d'exit # possibilité d'enlever ce point d'exit ou non. QUSDRGPT permet d'enlever ce point d'exit. |
Registration Facility Nouvelle fonction de l'OS permettant d'associer à une fonction logiciel un pgm de contrôle entreprise, chargé de tracer ou valider l'action. DEUX NOTIONS : - Exit program : programme associé à un point d'exit. l'écriture est à votre charge il reçoit souvent deux paramètres (à vérifier...) 1/ 1 alpha renvoyé par le programme '0' = refus '1' = validation 2/ données reçues (description suivant le format) - APIs : QUSADDEP ajout d'un programe d'exit QUSRMVEP retrait un programe d'exit QUSRTVEI extraction d'informations - Commandes : WRKREGINF , ADDEXITPGM , RMVEXITPGM # |
Attributs du réseau Système: S4409790 Nombre maximal d'étapes . . . . . . . . . . . . : 16 Accès aux demandes DDM . . . . . . . . . . . . . : *OBJAUT Accès aux demandes Client Access . . . . . . . . : *REGFAC <-- Type du réseau RNIS par défaut . . . . . . . . . : Liste de connexion RNIS par défaut . . . . . . . : QDCCNNLANY Support ANYNET admis . . . . . . . . . . . . . . : *NO Domaine du serveur de réseau . . . . . . . . . . : S4409790 ######################################################################## # # # Pour utiliser ces concepts avec Client/Access vous devez saisir : # # CHGNETA PCSACC(*REGFAC) # # # # ce qui permet d'avoir un pgm de contrôle par fonction # # (et non un pgm général comme en V2R30) # # # ######################################################################## Fin Appuyez sur ENTREE pour continuer. F3=Exit F12=Annuler |
Work with Registration Info (WRKREGINF) Indiquez vos choix, puis appuyez sur ENTREE. Exit point . . . . . . . . . . . EXITPNT *REGISTERED Exit point format . . . . . . . FORMAT *ALL Output . . . . . . . . . . . . . OUTPUT * ######################################################################### # # # Puis utilisez WRKREGINF qui affiche tous les points d'exit définis. # # # ######################################################################### Fin F3=Exit F4=Invite F5=Réafficher F12=Annuler F13=Mode d'emploi invite F24=Autres touches |
voici la liste des points d'exit définis (ici, en V4R20) : Exit Point Format Text --------------------------------------------------------------------------- QIBM_QHQ_DTAQ DTAQ0100 Original Data Queue Server QIBM_QJO_DLT_JRNRCV DRCV0100 Delete Journal Receiver QIBM_QLZP_LICENSE LICM0100 Original License Mgmt Server QIBM_QMF_MESSAGE MESS0100 Original Message Server QIBM_QNPS_ENTRY ENTR0100 Network Print Server - entry QIBM_QNPS_SPLF SPLF0100 Network Print Server - spool QIBM_QOE_OV_USR_ADM UADM0100 OfficeVision/400 Administration QIBM_QOE_OV_USR_SND DOCI0900 OfficeVision/400 Mail Send Exit point QIBM_QOK_NOTIFY VRFY0100 System Directory Notify Exit point QIBM_QOK_SUPPLIER SUPL0100 System Directory Supplier Exit point QIBM_QOK_VERIFY VRFY0100 System Directory Verify Exit point QIBM_QPWFS_FILE_SERV PWFS0100 File Server QIBM_QRQ_SQL RSQL0100 Original Remote SQL Server QIBM_QSU_LCMD EXTP0100 EXIT POINT FOR SEU USER DEFINE COMMANDS |
QIBM_QSY_CHG_PROFILE CHGP0100 Change User Profile QIBM_QSY_CRT_PROFILE CRTP0100 Create User Profile QIBM_QSY_DLT_PROFILE DLTP0100 Delete User Profile - after delete QIBM_QSY_DLT_PROFILE DLTP0200 Delete User Profile - before delete QIBM_QSY_RST_PROFILE RSTP0100 Restore User Profile QIBM_QTA_STOR_EX400 EX400200 Storage Extension Exit Program QIBM_QTA_TAPE_TMS TMS00200 Tape Management Exit Program QIBM_QTF_TRANSFER TRAN0100 Original File Transfer Function QIBM_QTG_DEVINIT INIT0100 Telnet Device Initialization QIBM_QTG_DEVTERM TERM0100 Telnet Device Termination QIBM_QTMF_CLIENT_REQ VLRQ0100 FTP Client Request Validation QIBM_QTMF_SERVER_REQ VLRQ0100 FTP Server Request Validation QIBM_QTMF_SVR_LOGON TCPL0100 FTP Server Logon QIBM_QTMT_WSG QAPP0100 WSG Server Sign-On Validation QIBM_QTMX_SERVER_REQ VLRQ0100 REXEC Server Request Validation QIBM_QTMX_SVR_LOGON TCPL0100 REXEC Server Logon QIBM_QTOD_DHCP_ABND DHCA0100 DHCP Address Binding Notify QIBM_QTOD_DHCP_ARLS DHCR0100 DHCP Address Release Notify QIBM_QTOD_DHCP_REQ DHCV0100 DHCP Request Packet Validation QIBM_QTOD_SERVER_REQ VLRQ0100 TFTP Server Request Validation |
QIBM_QVP_PRINTERS PRNT0100 Original Virtual Print Server QIBM_QWC_PWRDWNSYS PWRD0100 Prepower down system exit point QIBM_QWC_QSTGLOWACN STGL0100 Auxiliary storage lower limit QIBM_QWT_JOBNOTIFY NTFY0100 JOB NOTIFICATION QIBM_QWT_PREATTNPGMS ATTN0100 Preattention program exit point QIBM_QWT_SYSREQPGMS SREQ0100 Presystem request pgm exit point QIBM_QZCA_ADDC ZCAA0100 Add Client exit point QIBM_QZCA_REFC ZCAF0100 Refresh Client Information exit point QIBM_QZCA_RMVC ZCAR0100 Remove Client exit point QIBM_QZCA_SNMPTRAP ZCAT0100 SNMP trap routing exit point QIBM_QZCA_UPDC ZCAU0100 Update Client Information exi QIBM_QZDA_INIT ZDAI0100 Database Server - entry QIBM_QZDA_NDB1 ZDAD0100 Database Server - data base access QIBM_QZDA_NDB1 ZDAD0200 Database Server - data base access QIBM_QZDA_ROI1 ZDAR0100 Database Server - object information QIBM_QZDA_ROI1 ZDAR0200 Database Server - object information QIBM_QZDA_SQL1 ZDAQ0100 Database Server - SQL access QIBM_QZDA_SQL2 ZDAQ0200 Database Server - SQL access QIBM_QZHQ_DATA_QUEUE ZHQ00100 Data Queue Server |
QIBM_QZMFMSF_ACT MSFF0100 MSF Accounting Exit QIBM_QZMFMSF_ADR_RSL MSFF0100 MSF Address Resolution QIBM_QZMFMSF_ATT_CNV MSFF0100 MSF Attachment Conversion QIBM_QZMFMSF_ATT_MGT MSFF0100 MSF Attachment Management QIBM_QZMFMSF_ENL_PSS MSFF0100 MSF Envelope Processing QIBM_QZMFMSF_LCL_DEL MSFF0100 MSF Local Delivery QIBM_QZMFMSF_LST_EXP MSFF0100 MSF List Expansion QIBM_QZMFMSF_MSG_FWD MSFF0100 MSF Message Forwarding QIBM_QZMFMSF_NON_DEL MSFF0100 MSF Non Delivery QIBM_QZMFMSF_SEC_AUT MSFF0100 MSF Security and Authority QIBM_QZMFMSF_TRK_CHG MSFF0100 MSF Track Mail Message Change QIBM_QZMFMSF_VLD_TYP MSFF0100 MSF Validate Type QIBM_QZRC_RMT CZRC0100 Remote Command/Program Call QIBM_QZSC_LM ZSCL0100 Central Server - license mgmt QIBM_QZSC_NLS ZSCN0100 Central Server - conversion map QIBM_QZSC_SM ZSCS0100 Central Server - client mgmt QIBM_QZSO_SIGNONSRV ZSOY0100 TCP Signon Server Comment associer un programme : |
Work with Registration Information Type options, press Enter. 5=Display exit point 8=Work with exit programs <-- Exit Exit Point Opt Point Format Registered Text QIBM_QHQ_DTAQ DTAQ0100 *YES Original Data Queue Server QIBM_QLZP_LICENSE LICM0100 *YES Original License Mgmt Server QIBM_QMF_MESSAGE MESS0100 *YES Original Message Server QIBM_QNPS_ENTRY ENTR0100 *YES Network Print Server - entry QIBM_QNPS_SPLF SPLF0100 *YES Network Print Server - spool QIBM_QOE_OV_USR_ADM UADM0100 *YES OfficeVision/400 Administrati QIBM_QOK_SUPPLIER SUPL0100 *YES System Directory Supplier Exi QIBM_QOK_VERIFY VRFY0100 *YES System Directory Verify Exit 8 QIBM_QPWFS_FILE_SERV PWFS0100 *YES File Server QIBM_QRQ_SQL RSQL0100 *YES Original Remote SQL Server A suivre... Command ===> F3=Exit F4=Prompt F9=Retrieve F12=Cancel |
Work with Exit Programs Exit point: QIBM_QPWFS_FILE_SERV Format: PWFS0100 Type options, press Enter. 1=Add 4=Remove 5=Display 10=Replace Exit Program Exit Opt Number Program Library 1 (No exit programs found.) ########################################################################## # # Sur cet écran 1 = ADDEXITPGM : ajout d'un pgm d'exit # 4 = RMVEXITPGM : retrait d'un pgm d'exit # ########################################################################## Fin Command ===> F3=Exit F4=Prompt F5=Refresh F9=Retrieve F12=Cancel |
Quelques précisions : un point d'exit peut avoir plusieurs "formats". il s'agit de la définition de plusieurs actions pouvant être réalisées par la même fonction. exemple du point d'exit QIBM_QZDA_NDB1 serveur de données (ODBC) format ZDAD0100 : gestion de la base (CREATE, DROP, etc...) ZDAD0200 : Gestion de la liste de bibliothèques (ADDLIBLE) chaque format définit la structure des données envoyées au pgm. pour connaitre le détail d'un format voir la documentation SC41-374 : "OS/400 server concept and administration " Ci-dessous, les plus importants : |
QIBM_QPWSF_FIle_Serveur : serveur de fichier depuis la V3R10 Format PWFS0100 : - CHAR(10) Profil utilisateur - CHAR(10) fonction = '*FILESRV' - BIN(4) Action : 1 = modif des attributs 2 = création (STMF ou directory) 3 = supression ( " " ) 4 = liste des attributs 5 = MOV 6 = OPEN 7 = RNM 8 = Allocate d'une conversation - CHAR(8) format = 'PWFS0100' - CHAR(4) type d'ouverture (1=oui, 0=non) - CHAR(1) Read - CHAR(1) write - CHAR(1) Read/write - CHAR(1) delete possible |
- BIN(4) lg du nom de fichier - CHAR(??) nom du fichier y compris le chemin, lg maxi 16Mo. ATTENTION : le nom du fichier est donné en UNICODE. Il s'agit d'une norme de codification ISO (basée sur l'ASCII) qui tient compte des paramètres nationaux : - codée sur deux octets pour les idéogrammes asiatiques (DBCS) en france le premier octet vaut TOUJOURS x'00' - tenant compte du code page et des caractères accentués (comme l'ANSI) Voir l'exemple associé qui propose une conversion EBCDIC/UNICODE pour les chiffres et les caractères sans accents (partie invariante du LATIN 1) ou bien utiliser iconv() [routine standard de conversion destinée au C] |
QIBM_QTF_Transfert : Transfert de fichiers Format TRAN0100 : - CHAR(10) Profil utilisateur - CHAR(10) fonction = '*TFRCTL' - CHAR(10) action 'SELECT' 'JOIN' 'REPLACE' 'EXTRACT' - CHAR(10) fichier - CHAR(10) bibliothèque - CHAR(10) membre - CHAR(8) format = 'TRAN0100' - BIN(4) lg zone suivante - CHAR(??) requête. |
QIBM_QZDA_INIT : lancement de la fonction serveur de données (ODBC) Format ZDAI0100 - CHAR(10) Profil utilisateur - CHAR(10) fonction = '*SQL' - CHAR(8) format = 'ZDAI0100' - BIN(4) toujours à 0 QIBM_QZDA_NDB1 : fonction serveur de données (ODBC): Format ZDAD0100 : (gestion de la base de données) - CHAR(10) Profil utilisateur - CHAR(10) fonction = '*NDB' - CHAR(8) format = 'ZDAD0100' - BIN(4) action |
actions possibles : 6144 CRTSRCPF 6145 Création d'un fichier (basé sur un fichier modèle) 6146 Ajout de membre 6147 Mise à blanc d'un membre 6148 Supression d'un membre 6149 OVRDBF 6150 DLTOVR 6153 DLTF - CHAR(128) Nom du fichier(support des noms longs SQL) - CHAR(10) Bibliothèque - CHAR(10) Membre - CHAR(10) Autorisations (si création) - CHAR(128) Nom du fichier sur modèle (création) - CHAR(10) Bibliothèque |
- CHAR(10) Nom du fichier de substitution - CHAR(10) Bibliothèque de subsitution - CHAR(10) membre de substitution Format ZDAD0200 : (gestion de la liste de bibliothèques) - CHAR(10) Profil utilisateur - CHAR(10) fonction = '*NDB' - CHAR(8) format = 'ZDAD0200' - BIN(4) action : 6156 = ADDLIBLE - BIN(4) nombre de bibliothèques ajoutées - CHAR(??) liste des bibliothèques ajoutées. |
QIBM_QZDA_SQL1 : fonction serveur de données (ODBC): Format ZDAQ0100 : (Requêtes SQL via ODBC) - CHAR(10) Profil utilisateur - CHAR(10) fonction = '*SQLSRV' - CHAR(8) format = 'ZDAQ0100' - BIN(4) action actions possibles : code| instruction SQL 6147 prepare & describe 6148 open 6149 execute 6150 execute immediate 6153 connect (DRDA) 6157 prepare & execute ou prepare & open 6158 open & fetch A suivre ... |
6159 create package 6160 clear package 6161 delete package 6162 execute & open 6166 prepare 6158 open & fetch - CHAR(18) Nom de l'instruction - CHAR(18) Nom du curseur - CHAR(2) options pour PREPARE - CHAR(2) options pour OPEN - CHAR(10) Nom du SQL Package - CHAR(10) Bibliothèque du SQL Package - BIN(2) DRDA 0 = base locale 1 = remote database |
- CHAR(1) Type de validation et verrouillage A = *ALL C = *CHANGE N = *NONE S = *CS - CHAR(512) 512 premiers caractères de la requête. QIBM_QZRC_RMT : Remote commandes et procédures cataloguées. Format CZRC0100 : - CHAR(10) Profil utilisateur - CHAR(10) fonction = '*RMTSRV' - CHAR(8) format = 'CZRC0100' - BIN(4) action : 1002 remote commande 1003 remote procedure call |
pour action 1002 (remote commande) - CHAR(10) réservé. - BIN(4) lg de la commande - CHAR(??) la commande pour action 1003 (remote procedure call) - CHAR(10) programme - CHAR(10) bibliothèque - BIN(4) nombre de paramètre - CHAR(??) paramètres /x fois le découpage suivant: . BIN(4) lg de la zone . BIN(4) lg maxi . BIN(2) 1=input,2=output,3=I/O . CHAR(??) paramètre |
En V4R2 : il y ade nombreux nouveaux point d'exit basé sur TCP/IP remarquons QIBM_QTG_DEVINIT démarrage d'une session telnet QIBM_QTG_DEVTERM clôture d'une session telnet QIBM_QTG_DEVINIT paramètres recus : 1/ User -> c'est un structure indiquant les caractèristiques d'une ouverture avec saut de signon. + Binaire (4) lg de la structure + CHAR(10) profil à utiliser + CHAR(10) curlib [val. *USRPRF admise] + CHAR(10) pgm [val. *USRPRF admise] + CHAR(10) menu [val. *USRPRF admise] |
2/ Device -> c'est un structure indiquant les caractèristiques de l'unité à utiliser + CHAR(10) nom de l'unité + CHAR(8) format DSPD0100 = Ecran (seul en V4R2) + CHAR(2) réservé + BIN(4) OFFSET pour DSPD0100 = 29 + BIN(4) lg de DSPD0100 = 12 + CHAR(16) structure DSPD0100 contenant ° CHAR(3) clavier = FAB en france ° CHAR(1) réservé ° BIN(4) code page = 297 ° BIN(4) jeux de car. = 697 |
3/ infos de connexion (structure) + BIN(4) lg de la structure à suivre + sous-structure contenant l'adresse IP ° CHAR(1) taille de l'adresse en binaire ° CHAR(1) type d'adresse x'02' = IP x'06' = IPX ° BIN(2) n° de port ° CHAR(16) adresse IP constituée de 4 fois 4 octets binaires. + le mot de passe est-il validé ? - 0 = non - 1 = oui (transmis en clair) - 2 = oui (transmis crypté) |
4/ environnement selon la RFC1572 il est possible de fixer des variables d'environnement pour TELNET (particulièrement dans le monde Unix) cette zone contient en clair les variables d'environnement et leur contenu. 5/ lg de la zone environnement 6/ connexion 0 = rejeté 1 = autorisée 7/ saut du signon 0 = rejeté 1 = autorisée |
QIBM_QTG_DEVTERM clôture d'une session TELNET paramètres recus : 1/ CHAR(10) nom de l'unité et aussi QIBM_QTMF_SERVER_LOGON connexion FTP QIBM_QTMX_SERVER_LOGON connexion REXEC QIBM_QTMF_SERVER_REQ une requête FTP QIBM_QTMX_SERVER_REQ une requête REXEC QIBM_QTOD_SERVER_REQ une requête TFTP (qui est sans connexion) Ces 3 derniers utilisent le même format VLRQ0100 |
- BIN(4) Application : 0 = FTP client 1 = FTP serveur 2 = REXEC 3 = TFTP - BIN(4) Opération : 1 = Démarrage / connexion 2 = Création Lib/répertoire 3 = CD (ou LCD) 4 = liste des fichiers 5 = Delete 6 = Envoi de fichier 7 = Réception de fichier 8 = changement de nom 9 = Commande CL - CHAR(10) Profil utilisateur - CHAR(??) Adresse IP distante - BIN(4) Lg de la zone précédente |
- CHAR(??) Détail de l'opération demandée - BIN(4) Lg de la zone précédente - BIN(4) Réponse du pgm d'exit -1 opération toujours refusée 0 opération refusée 1 opération acceptée 2 opération toujours acceptée ........................................ : Pour une opération toujours acceptée : : ou refusée, le pgm d'exit ne sera : : plus appellé pour cette opération : : pendant la session. : :......................................: |