Pour faire des programmes LAUNCHER Office sûrs en terme d'accès concurrentiels, il faut surveiller l'accès aux ressources partagées, et avoir la certitude qu'elles ne seront pas utilisées simultanément.
Par
exemple, considérons un programme A qui utilise le fichier "a.txt"
par la commande DBXFER.
Ce programme est sûr en termes d'accès concurrentiels par rapport à un
programme B qui utiliserait le fichier "b.txt", mais pas par
rapport à lui-même.
Donc soit on est sûr que le programme A n'est jamais lancé simultanément, soit
on résout le problème de la ressource critique.
Pour résoudre ce problème, les alternatives sont :
• Utiliser un nom de fichier non fixe (à déterminer par le programme). Cette solution est la meilleure car elle permettra à plusieurs instances du programme A de fonctionner en simultanéité complète.
La variable %CONID% permet de garantir cette unicité pour une instance de LAUNCHER Office donnée (attention aux fichiers qui seraient sur le réseau et utilisés par plusieurs postes).
• utiliser une 'section critique' à l'aide de la commande LAUNCHER 'CRITSECT', qui vous permet de protéger une ressource commune.
Dans ce cas, il faudra faire, juste avant d'utiliser le fichier a.txt
LNCCMD CMD(CRITSECT) PARM1('Name="ProgramA";Enter')
Et juste après:
LNCCMD CMD(CRITSECT) PARM1('Name="ProgramA";Leave')
Il est toujours préférable d'éviter les conflits (lorsque c'est possible) plutôt que d'utiliser des sections critiques.
Les sections critiques sont automatiquement libérées par la commande LNCCLOSE.