Volubis, le forum IBM i Index du Forum Volubis, le forum IBM i
avec les clubs Informatiques IPL et Bretagne.
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

triggers

 
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Système
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
thomas.barberot



Inscrit le: 12 Avr 2012
Messages: 25

MessagePosté le: Mar 20 Nov 2018, 10:04:39    Sujet du message: Répondre en citant

Bonjour.

Sur un table, un trigger est ajouté (ADDPFTRG) en le faisant pointer sur un objet RPGLE/*PGM.

Lorsque la table est ouverte (en natif) dans un programme de mise à jour, le programme associé au trigger apparaît alors comme verrouillé (même si aucune action sur la table n'a encore été effectuée), et il n'est alors plus possible de remplacer cet objet (par exemple pour installer une correction).

Lorsqu'on remplace un programme "normal" (non trigger), l'objet remplacé est déplacé/renommé dans QRPLOBJ, et il est utilisé jusqu'à la fermeture du travail. Dans le cas des programmes associés à des triggers, ce fonctionnement semble impossible.

Est-ce que c'est bien le fonctionnement particulier pour les programmes associés à un trigger ? Y-a-t'il un moyen (compilation du programme, option du trigger) d'influencer ce comportement ?

Merci.


Dernière édition par thomas.barberot le Mar 20 Nov 2018, 11:19:28; édité 2 fois
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
florian67



Inscrit le: 23 Déc 2013
Messages: 86

MessagePosté le: Mar 20 Nov 2018, 10:17:44    Sujet du message: (sujet inconnu) Répondre en citant

Salut,

Au niveau du ADDPFTRG je ne sais pas exactement comment les verrouillages fonctionnent.

Par contre ce que tu peux faire c'est créé un trigger SQL.
En cas de modification, tu fais un drop trigger et create trigger.

Exemple :
Citation:

c/exec sql
c+ CREATE TRIGGER bib/nom_trigger
c+ AFTER UPDATE ON bibi/nom_fichier
c+ REFERENCING NEW ROW AS N
c+ OLD ROW AS A
c+ FOR EACH ROW MODE DB2ROW
c+ WHEN (( A.ZONE <> N.ZONE)
c+ BEGIN
c+ INSERT INTO fichiertrigger
c+ VALUES
c+ ( N.ZONE,
c+ 'UPDATE', USER, CURRENT_TIMESTAMP) ;
c+ END
c/end-exec

Florian
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
thomas.barberot



Inscrit le: 12 Avr 2012
Messages: 25

MessagePosté le: Mar 20 Nov 2018, 11:21:44    Sujet du message: Répondre en citant

Et bien c'est un programme RPG, parce qu'il fait des choses trop complexes à faire en SQL pur.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 658
Localisation: Nantes

MessagePosté le: Mar 20 Nov 2018, 17:54:34    Sujet du message: ADDPFTRG Répondre en citant

C'est effectivement un problème avec les triggers, IBM a essayé de baisser le niveau de verrouillage par une option de QAQQINI PREVENT_ADDITIONAL_CONFLICTING_LOCKS

https://ibm.co/2FAecO9

A tester ?
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
thomas.barberot



Inscrit le: 12 Avr 2012
Messages: 25

MessagePosté le: Mar 04 Déc 2018, 16:15:02    Sujet du message: (sujet inconnu) Répondre en citant

La modification de la valeur (j'ai essayé "*YES" et "*NO") de l'option "PREVENT_ADDITIONAL_CONFLICTING_LOCKS" du QAQQINI de QUSRSYS n'a visiblement aucun effet sur le fait que le *PGM déclaré comme trigger soit tenu, et donc non allouable pour remplacement par la compilation, dès que le fichier est ouvert.
Je le comprendrais si le fichier était tenu en mise-à-jour, mais là, c'est en lecture simple, donc on sait que le trigger ne sera pas déclenché...

Je vais peut-être essayer d'ouvrir un dossier au point service.

Merci pour les différentes réponses.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Système Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com

Anti Bot Question MOD - phpBB MOD against Spam Bots