Université IBM i 2019 - Volubis DB2.pdf · Université IBM i 2019 22 et 23 mai IBM Client Center...

of 65 /65
Université IBM i 2019 22 et 23 mai IBM Client Center Paris Christian Massé Volubis [email protected] S01 – Nouveautés DB2 2018 - 2019

Embed Size (px)

Transcript of Université IBM i 2019 - Volubis DB2.pdf · Université IBM i 2019 22 et 23 mai IBM Client Center...

  • Université IBM i 201922 et 23 maiIBM Client Center Paris

    Christian Massé[email protected]

    S01 – Nouveautés DB2 2018 - 2019

  • Université IBM i 201922 et 23 maiIBM Client Center Paris

    Volubis.fr

    Conseil et formation sur OS/400, I5/OS puis IBM i depuis 1994 !

    Dans nos locaux, vos locaux ou par Internet

  • Nouveautés DB2 2017 - 2018 Nouvelles options « Schémas » et

    « SQL performance Center »

    3

    Nous nous étions quitté l’année dernière sur lesnouveautés d’ACS …

  • Nouveautés DB2 2017 - 2018 ACS est passé ensuite en version 1.1.8.1, puis en Avril

    en 1.1.8.2

    4

  • Nouveautés DB2 2018 - 2019

    Performance Center

    5

    Inclusion, permet de filtrer les moniteurs• Sur le nom• Sur la date

  • Nouveautés DB2 2018 - 2019 Schémas

    • Choix de l’ASP lors de la création d’un schéma

    6

  • Nouveautés DB2 2018 - 2019 Schémas

    • Modificationdes Alias,des droitsRCAC

    7

  • Nouveautés DB2 2018 - 2019

    Gestionnaire de scripts 1.1.8.1

    8

  • Nouveautés DB2 2018 - 2019

    Gestionnaire de scripts 1.1.8.1

    • Avec « for update » la liste est modifiable

    9

  • Nouveautés DB2 2018 - 2019 Version 1.1.8.2

    lancez l’option de votre choix depuis la liste des systèmes

    10

  • Nouveautés DB2 2018 - 2019 Le formatage (Ctrl+Maj+F) entièrement revu

    intègre un contrôle de synatxe

    réalise aussi un contrôle de syntaxe

    11

  • Nouveautés DB2 2018 - 2019 Et surtout

    12

  • Nouveautés DB2 2018 - 2019 Et surtout

    13

  • Nouveautés DB2 2018 - 2019 Et surtout

    14

  • Nouveautés DB2 2018 - 2019 Et surtout

    15

  • Syntaxe SQL

    16

  • Nouveautés DB2 2018 - 2019 Nom de corrélation facultatif avec les fonctions table

    17

    ici "as t" devient optionnel

  • Nouveautés DB2 2018 - 2019 fonctions et services améliorés

    18

    NOW() admet maintenant une précision (entre 0 et 12) sur le timestamp en cours

    VARCHAR_FORMAT (ou TO_CHAR) qui transforme • caractère vers varchar• numérique vers varchar

    Timestamp vers varchar

    dans ce dernier cas, ont été ajoutésMs pour millisecondesUs pour microsecondes

  • Nouveautés DB2 2018 - 2019 fonctions et services améliorés

    19

    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 retourne 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

  • Nouveautés DB2 2018 - 2019 le compilateur SQLRPGLE devient plus "bavard" quand une variable ou une DS

    n'est pas utilisable dans une instruction SQL

    20

  • IBM i services

    21

  • Nouveautés DB2 2018 - 2019 SET_PASE_SHELL_INFO

    22

    SET_PASE_SHELL_INFO, procédure pour définir le shell par défaut sous PASE

    CALL QSYS2.SET_PASE_SHELL_INFO('*CURRENT’, '/QOpenSys/QIBM/ProdData/OPS/tools/bin/bash’);

    CALL QSYS2.SET_PASE_SHELL_INFO('*DEFAULT’, '/QOpenSys/usr/bin/ksh');

  • Nouveautés DB2 2018 - 2019

    23

    USER_INFO, modifiéAjout de SUPPLEMENTAL_GROUP_COUNT et SUPPLEMENTAL_GROUP_LIST

    Ajout de PASE_SHELL_PATH

    LICENSE_INFO, modifiéAjout de INSTALLED (YES / NO)

    Nouvelle procédure LICENSE_EXPIRATION_CHECKEnvoi un message dans QSYSOPR pour tous les produits :

    arrivés à expiration (sans paramètre) arrivant à expiration dans n jours (n étant le paramètre, numérique)

  • Nouveautés DB2 2018 - 2019 nouvelle vue JOB_DESCRIPTION_INFO

    retournant des infos sur une JOBD

    24

  • Nouveautés DB2 2018 - 2019 nouvelle vue OUPUT_QUEUE_ENTRIES_BASIC

    retournant des infos sur tous le spools du système

    25

  • TR6 (V7R3)

    26

  • Petit retour en arrière...OnDemand Tracking System Limits (résumé des épisodes précédents )

    ●But du jeu, fournir des alertes sur les événements base de donnéespouvant impacter les limites du système, plutôt que de subirun arrêt de traitement ou des lenteurs

    ●les limites DB2 sont aussi fournies dans le fichier du catalogue SQL_SIZING

    ●Les limites sont suffisamment lointaines pour la plupart d'entre nousmais le dépassement d'un seuil peut être une indication intéressante,voire le signe d'une activité anormale,

  • System Limits

    OnDemand Tracking System Limits

    ● Aux fonctions pouvant présenter une limite, on va associer :

    ● un Seuil-> la première fois que le seuil est dépassé on le signale

    ● un Incrément-> quand un incrément, par rapport au seuil précédent est ensuite

    dépassé, on le signale également.

    les événements sont notifiés dans un fichier du catalogue système : SYSLMTTBL

  • System Limits

    ●Les nouveautés de la 7.3 TR6

    ●Taille maxi d’une table (15003)et Un message SQL7062 de gravité 80 est envoyé à QSYSOPR.

  • System Limits

    ●Les limites ainsi que la plupart des services sont accessibles depuisDB2 Web Query.

  • Nouveautés DB2 2018 - 2019 CREATE INDEX

    Nous pouvions déjà (dans un but d’utilisation par pgm) Faire des clefs complexes : Upper(nom) ou (QTE * PRIX)

    Indiquer un nom de format

    Indiquer la liste des zones du format

    Nous pouvons désormais,

    renommer les zones

    31

  • Nouveautés DB2 2018 - 2019 INSERT .. DEFAULT VALUES

    afin de

    « réserver » une ligne (assignation d’un champ Identity, puis mis à jour plus tard ?)

    ou de

    Tester un trigger INSERT

    INSERT INTO DEFAULT VALUES

    32

  • TR6 : IBM i services

    33

  • Nouveautés TR6 SYSTOOLS.SPLIT(liste d’éléments, ‘séparateur’)

    systools.split(‘A,B,C,D’ , ‘,’)

    ->34

    Fonction TABLE qui retourne un ligne par élément rencontré

    ORDINAL ELEMENT

    1 A

    2 B

    3 C

    4 D

  • Nouveautés TR6 QSYS2.DATA_AREA_INFO()

    • DATA_AREA_LIBRARY VARCHAR(10)• DATA_AREA_NAME VARCHAR(10)• DATA_AREA_TYPE VARCHAR(5) *LGL , *CHAR , *DEC• LENGTH INTEGER• DECIMAL_POSISITONS INTEGER• DATA_AREA_VALUE VARCHAR(2000) valeur sous forme d’une chaîne• DATA_AREA8BINARY_VALUE VARBINARY(2000) valeur sous forme binaire

    35

    Fonction TABLE qui retourne des informations sur une *DTAARA

  • Nouveautés TR6 QSYS2.DATA_AREA_INFO

    • DATA_AREA_LIBRARY VARCHAR(10)• DATA_AREA_NAME VARCHAR(10)• DATA_AREA_TYPE VARCHAR(5) *LGL , *CHAR , *DEC• LENGTH INTEGER• DECIMAL_POSISITONS INTEGER• DATA_AREA_VALUE VARCHAR(2000) valeur sous forme d’une chaîne• DATA_AREA8BINARY_VALUE VARBINARY(2000) valeur sous forme binaire• SQL_SEQUENCE VARCHAR(3) est-ce une séquence SQL ? (YES/NO)• TEXT_DESCRIPTION VARCHAR(50) Texte

    36

    Vue qui retourne des informations sur les *DTAARA

  • Nouveautés TR6 SYSTOOLS.FIRMWARE_CURRENCY

    • FW_CURRENCY VARCHAR(28) Niveau actuel• FW_CURRENT_FIXPACK VARCHAR(20) service pack• FW_RELASE_DATE DATE date du niveau actuel• FW_MACHINE_TYPE_MODEL VARCHAR(20) type et modèle• FW_RECOMMENDED_UPDATE VARCHAR(20) niveau de mise à jour recommandé (même version)• FW_RECOMMENDED_UPGRADE VARCHAR(20) version recommandée

    37

    Vue qui retourne des informations sur le firmware et le niveau disponible Sur le net

  • Nouveautés TR6 QSYS2.MESSAGE_FILE_DATA

    • MESSAGE_FILE_LIBRARY VARCHAR(10)• MESSAGE-FILE VARCHAR(10)• MESSAGE_ID CHAR(7) ID message• MESSAGE_TEXT VARGRAPHIC(132) texte en unicode (UTF-16)• SEVERITY INTEGER gravité• Etc…

    38

    Vue qui retourne la liste des messages dans un *MSGF

  • Nouveautés TR6 QSYS2.ASP_JOB_INFO

    • IASP_NAME VARCHAR(10)• IASP_NUMBER INTEGER• JOB_NAME CHAR(10)• JOB_STATUS VARCHAR(4)• JOB_TYPE VARCHAR(3) ASP, BCH, INT, WTR, ….• AUTHORIZATION_NAME VARCHAR(10) profil• SUBSYSTEM_NAME VARCHAR(10)• SQL_STATEMENT_STATUS VARCHAR(8) instruction SQL : ACTIVE / COMPLETE ou null• SQL_STATEMENT_TEXT VARCHAR(10000)• SQL_STATEMENT_START_TIMESTAMP• ASP_TYPE VARCHAR(9) Type d’ASP : PRIAMRY, SECONDARY, UDFS• RDB_NAME VARCHAR(18) nom de remote database (WRKRDBDIRE)

    39

    Vue qui retourne la liste des jobs qui utilisent un iASP

  • Nouveautés TR6 SYSTOOLS.SPOOLED_FILE_DATA

    • Paramètres en entrée– JOB_NAME CHAR(26)– SPOOLED_FILE_NAME CHAR(10)– SPOOLED_FILE_NUMBER INTEGER

    • Retourne– ORDINAL_POSITION INTEGER– SPOOLED_DATA VARCHAR(200)

    Utilise la commande CPYSPLF

    40

    Fonction TABLE qui retourne les données d’un spool

  • Nouveautés TR6

    41

    GET_JOB_INFO, modifiéAjout de V_ACTIVE_JOB_TYPE (ASJ, BCH, INT, WTR, ….)

    Ajout de V_AUTHORIZATION_NAME profil utilisateur en cours

    OBJECT_PRIVILEGES (vue) , modifiéeAjout de AUTHORIZATION_LIST

    ASP_INFO (vue) , modifiéeAjout de RDB_NAME (si Asp_Type = *SYSTEM)

  • Nouveautés TR6

    42

    Driver ODBC, pour IBMi, sur IBM i en tant que module open source

    Va permettre un accès à DB2 for i depuis de nombreux modules Open source (PHP par ex.),

    dont le nouveau langage R

  • Nouveautés TR6

    43

    Enfin, le serveur de web services (IWS) admet directement des ordres SQL

  • V7R4

    44

  • Nouveautés 7.4

    45

    La fonction HASH (retourne le N° de partition dans le cadre de DB2 multi-system) est renommée HASH_VALUE

    Nouvelles fonctions de hachage :

    HASH_MD5(expression)HASH_SHA1(expression)HASH_SHA256(expression)HASH_SHA512(expression)

    HASH(expression, 0(md5) | 1(sha1) | 2(sha256) | 3(sha512) )

    exemple VALUES HEX(HASH_SHA256('ABCDEFGHIJKLMNOPQRSTUVWXYZ'))-> 011F7AD1ECD8E5A4CC8533D1ECD497DC5D95E848B14F8BCFD56A73D7F41843E2

  • Nouveautés 7.4

    46

    NTP (serveur de temps)

    ProcéduresADD_TIME_SERVER -> ajoute un serveur à la liste des serveurs NTPREMOVE_TIME_SERVER -> retire un serveur NTP à la liste précédente

    VueTIME_PROTOCOLE_INFO -> retourne la liste des serveurs NTP

  • Nouveautés 7.4

    47

    AUTCOL

    La collecte de droits pouvait être lancée par utilisateur (nouveauté 7.3) par STRAUTCOL

    Elle peut désormais être pilotée par objet : CHGAUTCOL

    Nouvelles vues associées

    QSYS2.AUTHORITY_COLLECTION_LIBRARIES tous les objets d’une bibliothèqueQSYS2.AUTHORITY_COLLECTION_OBJECT recherche par objetQSYS2.AUTHORITY_COLLECTION_FSOBJ IFSQSYS2.AUTHORITY_COLLECTION_DLO QDLS…

  • Nouveautés 7.4

    48

    Le compilateur RPG propose des tableaux à taille variable

    DIM(*AUTO:max) -> tableau incrémenté automatiquement

    DIM(*VAR:max) -> tableau ajustable par %ELEM( ) = taille

    Ces deux nouveautés sont comprises par le pré-compilateur SQL

    DCL-DS DATA QUALIFIED DIM(*VAR:5000);FLD1 CHAR(10);FLD2 INT(5);

    END-DS;

    Nblignes = 400;%ELEM(DATA) = Nblignes;EXEC SQL

    INSERT into fichier :Nblignes ROWS VALUES(:DATA);

  • DB2 Mirror for i

    49

  • Nouveau produit 5770DBM

    Power 8 ou 9

    Stockage externe

    Utilise RDMA over Converged Ethernet (Roce)

    Éloignement de 100m maxi

    50

  • DB2 Mirror 5770DBM

    1ère option

    51

  • DB2 Mirror 5770DBM

    2ème option

    52

  • DB2 Mirror 5770DBM

    2ème option

    53

  • DB2 Mirror Objets répliqués

    54

  • DB2 Mirror Objets répliqués

    55Pour l’IFS, voyez POWERHA

  • DB2 Mirror Actif/Actif Avec un client Web :

    pensez aux nouveautésdu driver JDBC

    56

  • DB2 Mirror Actif/Actif Avec un client Web :

    pensez aux nouveautésdu driver JDBC

    ici avec ACS 1.1.8.2

    57

  • DB2 Mirror Actif/passif Interface 5250

    58

    Les Data sont répliquées, pas

    les JOB !

    Utilisez DB2 Web Query sur des données à

    jour !

  • DB2 Mirror GUI Interface web d’administration intégrée au produit

    59

  • DB2 Mirror GUI Interface web d’administration intégrée au produit

    -> Déjà prévue dans la liste des interfacespossibles depuis ACS

    60

  • DB2 Mirror GUI Interface web d’administration intégrée au produit

    61

  • DB2 Mirror GUI Quelques accès possibles aussi en mode SQL

    62

  • DB2 Mirror GUI Déjà intégrés à ACS (insertion à partir d’exemples)

    63

  • DB2 Mirror Voir

    • Les sessions de Steve Will @Steve_Will_IBMi

    - Jeudi 23 à 13h30 : S33 - Nouveautés réplication DB2 for i - Partie 1- Jeudi 23 à 14h45 : S41 - Nouveautés réplication DB2 for i - Partie 2

    • Knowledge Center disponible en 7.4

    https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_74/rzahg/welcome.htm

    64

    https://twitter.com/Steve_Will_IBMi

  • 65

    Université IBM i 2019�22 et 23 mai�IBM Client Center ParisUniversité IBM i 2019�22 et 23 mai�IBM Client Center ParisNouveautés DB2 2017 - 2018Nouveautés DB2 2017 - 2018Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Syntaxe SQLNouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019IBM i servicesNouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019TR6 (V7R3)Petit retour en arrière...System LimitsSystem LimitsSystem LimitsNouveautés DB2 2018 - 2019Nouveautés DB2 2018 - 2019TR6 : IBM i servicesNouveautés TR6Nouveautés TR6Nouveautés TR6Nouveautés TR6Nouveautés TR6Nouveautés TR6Nouveautés TR6Nouveautés TR6Nouveautés TR6Nouveautés TR6V7R4Nouveautés 7.4Nouveautés 7.4Nouveautés 7.4Nouveautés 7.4DB2 Mirror for iNouveau produitDB2 MirrorDB2 MirrorDB2 MirrorDB2 MirrorDB2 MirrorDB2 Mirror Actif/ActifDB2 Mirror Actif/ActifDB2 Mirror Actif/passifDB2 Mirror GUIDB2 Mirror GUIDB2 Mirror GUIDB2 Mirror GUIDB2 Mirror GUIDB2 MirrorDiapositive numéro 65