2017-02-09 1 views
1

lorsque j'utilise DataStage pour se connecter à la base de données Informix, il arrive une erreur:erreur en utilisant DataStage pour se connecter à base de données Informix

main_program: recherche PATH échec: main_program: Erreur lors du chargement « orchinformix »: Impossible de charger « orchinformix ": libifasf.so: mauvaise classe ELF: ELFCLASS32. main_program: Impossible de localiser la définition de l'opérateur, l'encapsuleur ou la commande Unix pour "infxread"; Vérifiez que toutes les bibliothèques nécessaires sont préchargées et vérifiez le PATH pour les wrappers.

Qu'est-ce qui peut causer ce problème? Attendez de l'aide. Merci beaucoup!

error snapshot

Répondre

0

La partie clé des messages d'erreur est:

libifasf.so: wrong ELF class: ELFCLASS32.

vous utilisez un système 64 bits (ou, au moins, executables 64 bits), mais vous avez un La version 32 bits des bibliothèques Informix ClientSDK ou Informix Connect est installée et votre code orchinformix essaie de charger la bibliothèque 32 bits libifasf.so et échoue.

Pour corriger ce problème, vous devez rechercher le libifasf.so que votre code essaie d'utiliser, et vous devez déterminer s'il existe une version 64 bits installée quelque part sur la machine. S'il n'y a pas de version 64 bits, alors vous devrez l'installer, bien sûr.

Vous devez ensuite ajuster les éléments pour que la bibliothèque correcte soit chargée plutôt que la mauvaise. Ce n'est pas clair ce que ça va prendre. Regardez attentivement les instructions de configuration et d'installation.

Normalement, libifasf.so et d'autres bibliothèques Informix sont installés dans les deux $INFORMIXDIR/lib ou un sous-répertoire de cela (par exemple $INFORMIXDIR/lib/esql ou $INFORMIXDIR/lib/client). Vous devrez peut-être définir la variable d'environnement INFORMIXDIR sur l'emplacement d'installation du logiciel 64 bits ou jouer avec d'autres variables d'environnement (LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, SHLIB_PATH, etc.), ou vous devrez peut-être modifier un fichier de configuration (/etc/ld.so.conf ou similaire). Si cette aide n'est pas suffisante, veuillez identifier la plate-forme (o/s et version) que vous utilisez, ainsi que le serveur de base de données Informix (est-ce la même machine ou une machine différente), et les versions de la base de données et de la connectivité Informix utilisées. Dans ce contexte, il est important que 12.10.FC4 et 12.10.UC4 soient légèrement différents; le F indique 64 bits et U Unix 32 bits (et W indiquerait Windows 32 bits). Veuillez inclure toutes les informations de numéro de version pour les produits.

+0

Merci beaucoup. Mais comment vérifier la version d'Informix ClientSDK? – Jason

+0

Savez-vous quel logiciel est installé? Avez-vous trouvé 'libifasf.so'? Si vous trouvez 'libifasf.so' dans'/opt/ibm/informix/lib/libifasf.so', il devrait y avoir un répertoire '/ opt/ibm/informix/etc' contenant un certain nombre de fichiers' * -cr' (par exemple 'ASF-cr',' ClientSDK-cr', ..., 'IIF-cr',' OSLIB-cr'). Assez curieusement, 'ClientSDK-cr' contiendrait les informations de copyright de ClientSDK; moins évidemment, 'IIF-cr' contiendrait les informations pour le serveur. Vous pouvez également exécuter 'check_version csdk' ou' ifx_getversion clientsdk' à partir de '/ opt/ibm/informix/bin'. –

+0

Notez que le nom de chemin que j'ai donné est hypothétique; il n'y a pas d'emplacement standard - ou, dans la mesure où il y en a un, c'est '/ usr/informix' qui contient les répertoires' bin', 'etc',' lib' (et quelques autres). Le répertoire est connu par la variable d'environnement utilisée par le logiciel, '$ INFORMIXDIR'. Vous devrez peut-être définir 'INFORMIXDIR' correctement avant que les programmes s'exécutent correctement. –