Je vient de tomber sur un problème assez casse burnes… et j’ai trouvé la solution !
Donc je partage !!
Comme vous le savez peut-être déjà, je travail sur Elcaro.
Mon objet qui utilise OCCI d’Oracle n’arrêtait pas de me faire un segmentation fault (erreur de segmentation) lorsque j’essayais de faire un oracle::occi::Environment::createEnvironment().
J’ai lancé le déboguer qui m’as sortis ceci:
#0 0×00007ffff164b77a in OCIPClearMxCtr () from /usr/lib/libclntsh.so.11.1
#1 0×00007ffff2d1c636 in oracle::occi::OCCIErrorGet(void*, unsigned int, unsigned char*, int*, unsigned char*, unsigned int, unsigned int) () from /usr/lib/libocci.so.11.1
#2 0×00007ffff2d115b1 in _ZN6oracle4occi16SQLExceptionImplC9EPvS2_i () from /usr/lib/libocci.so.11.1
#3 0×00007ffff2d1154e in oracle::occi::SQLExceptionImpl::SQLExceptionImpl(void*, void*, int) () from /usr/lib/libocci.so.11.1
#4 0×00007ffff2d12c29 in oracle::occi::SQLExceptionCreate(void*, int) () from /usr/lib/libocci.so.11.1
#5 0×00007ffff2d12e9c in oracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode, void*, void* (*)(void*, unsigned long), void* (*)(void*, void*, unsigned long), void (*)(void*, void*)) ()
from /usr/lib/libocci.so.11.1
Donc, la bibliothèque d’Oracle libclntsh.so.11.1 n’arrive pas à créer l’environnement, et pire que ca, elle crash complètement ! ( Merci Oracle encore une fois … >:| )
La Solution
Au début, je me suis dis, c’est la variable d’environnement ORACLE_HOME qui n’est pas définie.. Donc j’ai vérifié, et effectivement, elle ne l’était pas !
Donc, je la définie, je ré-essaie… pareil !
Rien à voire !
Puis, je suis tombé sur un poste qui m’a rappelé la variable d’environnement LD_LIBRARY_PATH !
J’ai donc modifié ma variable comme ceci:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/instantclient_11_1/
et voilà ! Problème résolut !!! ![]()
( A adapter biensur à votre cas !
Il faut que vous mettiez le chemin vers le dossier contenant les fichiers .so d’Oracle.)







