22 avril 2013

0509-150 Le module dépendant libcobrts.2.so n'a pas pu être chargé

La variable LIBPATH ou LD_LIBRARY_PATH sert à localiser les librairie de COBOL. Elle est positionnée par le .profile - et est "remise en place" par le script $ENV. Sans cela il arrive que les processus Unix fils perdent la valeur de cette variable.

Le symptôme classique de la perte de cette variable est le message suivant (en général lorsqu'une chaîne batch exécute un tri MFSort) :


message : exec() : 0509-036 Impossible de charger le programme /opt/cobol/bin/mfsort32 en raison des erreurs suivantes :
0509-150 Le module dépendant libcobrts.2.so n'a pas pu être chargé.
0509-022 Impossible de charger le module libcobrts.2.so.
0509-026 Erreur système : Un fichier ou un répertoire du chemin d'accès n'existe pas. 


En standard le script $ENV de HRAccess est nommé en standard $FILE/.kshrc. Le préfixe "." rend le fichier invisible (sauf à utiliser l'option "-a" de la commande "ls"). Il est donc peu connu - et soumis au risque d'être purgé ou oublié lors des duplications.

Je préfère le rendre visible et le déplacer sous le nom $SIGACS/adm/cfg/kshrc.cfg. Si vous faites de même n'oubliez pas de corriger l'alimentation de $ENV et de faire un arrêt - démarrage pour que les transactionnels prennent en compte votre mise à jour.

Addendum : modifier aussi les scripts $SBIN/OPER job strcalck3w et stpcalck3w qui appellent directement $FILE/.kshrc au lieu d'utiliser la variable $ENV ...

2 commentaires:

  1. "soumis au risque d'être purgé ou oublié lors des duplications" :
    ce fichier a déjà été compressé etje confirme que ça nous a occasionné une sacrée prise de tête pour trouver ce qui se passait.

    RépondreSupprimer
  2. Si vous renommez ce script - notez qu'il est appelé par le script $SIGACS/bin/OPER

    RépondreSupprimer