Valeur système IBM i (AS/400) · Contrôle du système
QMLTTHDACN
Action pour une fonction non sûre en travail multithread
Précise la réaction du système quand une fonction non sûre pour les unités d'exécution multiples (non threadsafe) est appelée dans un travail multithread.
À quoi elle sert
Les fonctions concernées sont notamment des commandes CL et des programmes d'exit enregistrés par la fonction d'enregistrement des programmes d'exit. Si une telle fonction n'est pas sûre en environnement multithread, le système peut l'exécuter, l'exécuter en le signalant ou la refuser.
Le sujet concerne le développeur et l'exploitant, car l'exécution d'une fonction non sûre met l'intégrité des données en jeu.
Les valeurs possibles
| Valeur | Signification |
|---|---|
1 | Exécute la fonction non sûre sans message. |
2 | Exécute la fonction non sûre et envoie un message d'information dans le journal du travail (valeur livrée). |
3 | N'exécute pas la fonction non sûre. |
Prise en compte : Immédiate.
La valeur recommandée
Sur un système qui exécute des travaux multithreads en production, ou dès que l'intégrité des données compte, utilisez 3. Gardez 2 pendant une phase d'inventaire pour repérer les fonctions concernées dans le journal de travail.
La changer
CHGSYSVAL SYSVAL(QMLTTHDACN) VALUE('3')
Pour lire la valeur actuelle et celle de la livraison, en SQL :
SELECT SYSTEM_VALUE_NAME, SYSTEM_VALUE, SHIPPED_DEFAULT_VALUE
FROM QSYS2.SYSTEM_VALUE_INFO
WHERE SYSTEM_VALUE_NAME = 'QMLTTHDACN'
Le piège
Avec 3, une fonction non sûre n'est pas exécutée : un traitement peut donc se comporter différemment, d'où l'intérêt d'un essai préalable. Avec 1, la fonction s'exécute sans trace ni protection. Les droits spéciaux *ALLOBJ et *SECADM sont nécessaires pour modifier la valeur.