Thin Stuff Factory

Thin Stuff Factory

La limite de la base de données de ce site étant atteinte depuis fort longtemps, mon activité y est plus qu’au ralenti. Malgré cette torpeur je reste coi devant le nombre de visiteur unique - une soixantaine par jour dont 30% de visiteurs l’ayant déjà visités – du coup, d’année en année je prolonge mon plan d’hébergement sans toutefois corriger les bugs de code page survenus récemment, sans réparer le carrousel de l’entête qui ne fonctionne plus depuis 3 ans et sans poster les potentiels articles prosélytiques sur la SWAPBAR apparu en z/OS 1.13 (ça commence à dater) que j’aimerai rédiger.

Mais alors, pourquoi ce billet au titre étrange?

Je dois, l’avouer par pur intérêt de ce que Google fait de votre présence sur ce site afin de faire un peu de SEO.

“Ah mais c’est dégueulasse!” entends-je déjà dire… et vous avez raison.

Mais attendez toutefois de savoir dans quel but, car en contrepartie, chers lecteurs-confrères-barbus et chères consoeurs-trop-peu-nombreuses, je vais peut-être sauver votre vie de couple en vous faisant trouver Le cadeau original et unique pour votre moitié ou vous faire adorer de votre petite nièce préférée.

En effet, depuis quelques temps, sur mon temps libre, je donne un petit coup de pousse technique (loin de z/OS) à Thin Stuff Factory, une boutique en ligne qui propose(ra) une sélection d’accessoires originaux, uniques, chics et décalés pour votre intérieur, ainsi qu’une gamme de vêtement, sac et bijoux en provenance directe d’Asie du Sud-Est, essentiellement de Thaïlande, de Bali et d’Inde. Ces objets sont pour la plupart fait-main avec des matières premières recyclées.

Derrière ce projet, une amie globe-trotteuse qui raconte sur son blog son périple à travers l’Asie du Sud-Est pour dénicher des articles rares et originaux à proposer sur sa boutique et qui partage sur son instagram son univers chatoyant, coloré et décalé.

Laissez-moi savoir en commentaire combien vous me haïssez pour ce post ;-)

 

Yes!

Yes!! Je suis “IBM Certified Database Associate – DB2 10.1 Fundamentals”.

Prochaine étape “IBM Certified Database Administrator – DB2 10 for z/OS”, avant la fin de l’année j’espère.

IBM Certified Database Associate - DB2 10.1 Fundamentals

Jointures SQL

Un memento pratique sur les différents types de jointures SQL.

 

SQL Joins

 

By Arbeck (Own work) [CC-BY-3.0], via Wikimedia Commons

DB2 for z/OS – Diagnosis Guide and Reference

Sur le site des ressources techniques de DB2 for z/OS il est impossible de télécharger le document « Diagnosis Guide and Reference », il faut obligatoirement passer par une commande car ce manuel est lié à la license du DB2 installé sur votre machine.

Toutefois il est possible de le récupérer directement depuis votre Système : Télécharger via FTP en mode binaire le membre DSNDR du PDS DSNx10.SDSNIVPD(*) puis renommer le avec une extension .PDF

Et voilà.

(*)DSNx10 étant le hlq d’installation de DB2

Documentation officielle ENDEVOR [Update]

Vous étiez nombreux à m’indiquer que le liens était mort, j’ai enfin fait une petite mise à jour, les pdf sont de nouveau accessibles \o/.

Ça se passe sur l’article original.

Bonne lecture ;)

ISPF : Recherche par type de caractères

Dans l’éditeur ISPF, il est possible de chercher une chaîne de caractère spécifique avec la commande FIND 'text', j’en parle dans les techniques utiles d’édition. Il est aussi possible de faire une recherche par type de caractère.

Il faut pour cela utiliser dans une sting P'' les caractère spéciaux ci-dessous qui représentent chacun un type de caractères :

. (Point)       Caractère non affichable
^ (Circonflexe) Caractère non blank
# (Dièse)       Caractère numérique
- (Tiret)       Caractère non numérique
@ (Arobace)     Caractère alphabétique
< (Plus petit)  Caractère alphabétique minuscule > (Plus grand)  Caractère lphabétique majuscule
$ (Dollar)      Caractère spéciaux ( : , ; = +)

Exemples :

FIND P’PPD##T’. On trouvera PPD01T, PPD02T, PPD21T…
FIND P'$####'. On trouvera #4123, (2000, ’0001 …
FIND P’^’ 72. Y a-t-il un caractère en colonne 72 du dataset ?

Attention au codepage de votre terminal, certains caractères spéciaux peuvent différer.

[Edit] Voir aussi les exemples d’usage avec CHANGE dans le commentaire de HUG

DFSORT : Appareillage simple avec JOINKEYS

Depuis un mois je bouffe des analyses dans tous les sens pour comparer des données applicatives qui sont en déphasage avec celles transmises par des référentiels du SI. Pour appareiller 2 fichiers, un programme cobol c’est très bien, mais quand la réponse est attendue 2 heures auparavant, et bien c’est pas gagné avec les changements de copybook, recompilation, gestion de versions…

DFSORT permet, depuis les PTFs UK51706 et UK51707 de novembre 2009, de faire des appareillages simples très efficaces, facilement maintenables et très performants. Je trouve que c’est une solution idéale pour créer de petites moulinettes de derrière les fagots, qui en 2 temps 3 mouvements vous rendront beau et désirable par n’importe quelle Maîtrise d’ouvrage soucieuse d’avoir son analyse dans l’heure!

Une petite explication avec exemple vous fera le plus grand bien :

Soit le fichier F1 provenant du SI avec un identifiant garantie sur 22 positions débutant en colonne 15 et F2 le déchargement d’une table applicative avec l’identifiant garantie sur 22 positions débutant en colonne 2. La clé d’appareillage est l’identifiant garantie. On veut enrichir le fichier F1 avec une donnée du fichier F2 qui se trouve en colonne 35 sur 2 positions (l’état de la garantie par exemple).

//STEPJOIN EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//F1       DD DSN=MON.FICHIER.UNLOAD,DISP=SHR
//F2       DD DSN=MON.FICHIER.SI,DISP=SHR
//SORTOUT  DD SYSOUT=*
//SYSIN    DD *
  JOINKEYS FILE=F1,FIELDS=(15,22,A),SORTED
  JOINKEYS FILE=F2,FIELDS=(2,22,A),SORTED
  REFORMAT FIELDS=(F1:1,70,F2:35,2)
/*

Cet appareillage est l’équivalent d’un INNER JOIN en SQL. Si vous souhaitez obtenir l’équivalent d’un LEFT, d’un RIGHT ou d’un FULL OUTER JOIN, il existe une fonction JOIN qui permet de les réaliser :

JOIN UNPAIRED    <---FULL JOIN UNPAIRED,F1 <---LEFT JOIN UNPAIRED,F2 <---RIGHT

Si vos fichiers sont triés selon la clé d’appareillage, SORTED permet d’indiquer à DFSORT ne pas retrier les fichiers (gain de perf) et NOSEQCK l’empêche de vérifier que vous ne mentez pas.

Plus d’info, d’explication, d’exemple et de détail sur la doc officielle IBM : SORTUGPG – User Guide for DFSORT PTFs UK51706 and UK51707 by Frank Yaeger [Attention accès via FTP, un proxy d'entreprise peut interdire l'accès à ce lien].

DFSORT : Meilleures compréhension et maintenabilité grâce aux symboles

Coder un step de tri par DFSORT ou ICETOOL, c’est pas bien compliqué. L’accumulation de plusieurs steps dans différents jobs avec réutilisation du même jeu de donnée partiel ou complet, c’est beaucoup moins rigolo… surtout s’il faut les faire évoluer dans le cadre d’un changement de format de données en entrée.

C’est la qu’interviennent les “symboles” qui nous permettent de coder cette forme classique peu explicite,

SORT FIELDS=(3,3,CH,A,6,32,CH,A)

En quelque chose de plus sexy, compréhensible et de haute maintenabilité :

SORT FIELDS=(CODE,A,LIBELLE,A)

Les symboles CODE et LIBELLE doivent être déclarés dans une carte SYMNAMES (symbols names) de la manière suivante :

//SYMNAMES DD *
  CODE,3,3,CH
  LIBELLE,6,32,CH
/*

La taille limite d’un symbole est de 50 caractères alphanumériques, le tiret (-) et l’underscore (_) sont acceptés. Code_Situation_Juridique est un symbole valide.

Les symboles sont sensibles à la casse, Code_Situation_Juridique est différent de Code_situation_juridique.

Je suis sûr que vous voyez maintenant tout le potentiel de ces symboles et que vous n’hésiterez pas à les utiliser.

Source : IBM Redbooks | Batch modernization on z/OS

Storage Administration z/OS Pocket Reference 1.9

Storage Administration z/OS Pocket Reference 1.9 est un mémento de référence sur le stockage sous z/OS proposé par DTS Software. On y trouve plein d’informations utiles : capacité des disques, calcul d’espace disque, de blocksize, limites des datasets VSAM/non-VSAM, informations SMS, etc.

Voici le sommaire complet de ce document :

Common Out-Of -Space Error Codes
DASD Device Information.
     VTOC DSCB Types
     DASD Device Capacities
     Dataset / Device Type Codes
Tape Label Processing
EXPDT Conventions
Volume Mounting and Usage
Non-SMS DASD Volume Use Attributes
     Volume Mount Attributes
     Mount Volume on Unit
Blocksizes and Capacities
     3390 Device Space Calculation
     3390 Blocksize Chart
     3390 Blocksize Chart – 3380 Comp. Mode
Dataset Limits.
DFSMSdss Information
     Logical Dump
     Logical Restore
     Filtering
FDRABR Information
     Full or Incremental Backup
     Dataset Restore from Backup
     SELECT Statement for Restore from Backup
DFSMShsm Information.
     Delete Migrated Dataset with
     Missing/Damaged MCD Record
     DFSMShsm ADDVOL Command
     DFSMShsm QUERY Command
TSO Commands for DFSMShsm
Useful Console Commands.
     Display SMS Subsystem Information
     Activate an SMS Configuration
     Display / Alter Volume and Storgrp Status
     Display Linklist, APF libraries, Dynamic Exits
     Add Dataset to Linklist
     Free a Linklisted Dataset
     APF-Authorize a Load Library
     Set SMS Subsystem Options
     Display SMF Dataset Names
     Display SMF Options
     Display Device Information
     Display System Configuration Information
     SMS and OAM/LCS Console Commands
RACF Information
     DFSMSdss Facility Class Profiles
     ABARS FACILITY Class Profiles
     Storage Admin Cmd & Keyword Profiles
     Other RACF Resources.
VSAM / IDCAMS Information
     Delete Orphan VVDS Record
     Recatalog a VSAM Cluster
     Delete Catalog Entry
     Print Contents of VVDS
SMS Subsystem Information
     Data Class Attributes
     Storage Class Attributes
     Management Class Attributes
     Storage Group Attributes
Automatic Class Selection Variables
Dataset Naming Conventions.
DFSMShsm Tape Dataset Naming Convention
SYS1.PARMLIB members.
APAR Status Codes
APAR Resolution Codes
PTF Closing Codes
ACC/SRS Allocation and Error-Prevention Rules
General Purpose Register
     Standard 72-Byte Save Area
     144-Byte Save Area
     208-Byte Save Area
Julian Perpetual Calendar – Non-Leap Years
Julian Perpetual Calendar – Leap Years
EBCDIC – to – Hex Character Conversion Chart

[A] Vocabulaire, abréviation et acronyme Mainframe

Pensez à jeter un coup d’oeil au mode de fonctionnement de cet abécédaire.

ABEND (abnormal end) : fin anormale d’un programme ou d’un traitement due à une erreur.
ACB (Access Control Block) : bloc de contrôle des méthodes d’accès VSAM et VTAM. Equivalent du DCB.
ACID (Atomicity, Consistency, Isolation, Durability) : caractéristiques que doit respecter une transaction (atomique, cohérente, isolée et durable).
ACL (Automatic Cartridge Loader) : chargeur automatique de support bande (cassettes/cartouche).
ACR (Alternate CPU Recovery) : transfert de contrôle d’un processeur défaillant à un autre processeur.
ACS (Automatic Class Selection) : routines qui déterminent le profil d’un fichier en SMS.
AIX (Advanced Interactive eXecutive) : Système IBM (Mainfraime) basé sur UNIX.
AMODE (Addressing mode) : mode d’adressage des programmes (24 ou 31 bits).
AMS (Access Method Services) : langage de commande pour la gestion des fichiers VSAM (programme IDCAMS).
APAR (Authorized Program Analysis Report) : correction d’une erreur logicielle, livrée par IBM et applicable par SMP.
APF (Authorized Program Facility) : possibilité de déclarer un programme ou une bibliothèque de modules “autorisé” à émettre des instructions privilégiées .
APG (Automatic Priority Group) : ensemble des priorités de distribution contrôlées par SRM.
API (Application Programming Interface) : ensemble de fonctions, procédures ou classes mis à disposition d’un programme.
ARM (Automatic Restart Manager) : Permet de relancé systématiquement DB2 en cas d’abend.
ARMIDE : outil permettant la gestion de LOV (liste de valeurs) à l’image des base de données hiérarchique.
AS/400 (Application System/400) : Gamme d’ordinateur comprise entre les Mainframe et les PC, ils sont généralement utilisés par les PME. Actuellement on parle de System i.
ASCB (Address-Space Control Block) : bloc de contrôle représentant un espace-adresse.
ASCII (American standard Code for Information Interchange) : norme de codage des caractères, code binaire à 7 éléments.
ASID (Address-Space Identifier) : numéro affecté à un espace-adresse.
ASM (Auxiliary Storage Manager) : Un des trois composants de gestion mémoire de MVS, gestionnaire de la mémoire auxiliaire.
ASM : Abréviaton d’Assembleur, langage informatique de bas niveau (proche langage machine).
Asynchrone : qualifie des traitements d’échange d’information qui ne surviennent pas simultanément. La mise en Å“uvre de tels traitements peuvent passer par la mise en place de files d’attente, le premier traitement “poste” les informations dans la file d’attente, le second traitement les “consomme” au fur et à mesure.