viernes, 4 de mayo de 2007

Error 00600 -> unable to load XDB library

Este error puede aparecerte eventualmente si intentas ejecutar algún comando como:
DBMS_XDB.createResource ()
DBMS_XMLSCHEMA.registerSchema()
o intentas acceder usando el enterprise manager / administracion / Base de datos XML /administar
y sale un error 500.

El problema es que no se cargan las librerías XDB debido a que no se han definido las variables que indican su ruta. Para solventar el error tuve que definir estas dos variables de entorno en Linux

1)export ORACLE_HOME=/home/oracle/oracle/product/10.2.0/db_1
2)export LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib: $ORACLE_HOME/jdk/jre/bin:$ORACLE_HOME/jdk/jre/bin/classic:
$ORACLE_HOME/rdbms/lib32:$ORACLE_HOME/mgw/lib32:.
3)export LD_LIBRARY_PATH=$LIBPATH

Debes sustituir ORACLE_HOME por donde tengas instalado tu oracle.

Nota: son 3 lineas, la segunda la he partido para que sea visible en el blog . Si quieres hacer un copy&paste del código copia estas tres líneas con el ratón:
export ORACLE_HOME=/home/oracle/oracle/product/10.2.0/db_1 export LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$ORACLE_HOME/jdk/jre/bin:$ORACLE_HOME/jdk/jre/bin/classic:$ORACLE_HOME/rdbms/lib32:$ORACLE_HOME/mgw/lib32:.
export LD_LIBRARY_PATH=$LIBPATH

Para poder exportar las variables tienes dos opciones:
1) Exportarlas desde un terminal escribiendo a mano las lineas (o con un copy&paste)
2) Definiéndolas por ejemplo en /home/usuario/.bashrc para que se carguen automáticamente. Yo he elegido esta opción.

Si intentas definir un archivo de texto ejecutable que las exporte con algo como:
#!/bin/bash
LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$ORACLE_HOME/jdk/jre/bin:$ORACLE_HOME/jdk/jre/bin/classic:$ORACLE_HOME/rdbms/lib32:$ORACLE_HOME/mgw/lib32:.
export LIBPATH
LD_LIBRARY_PATH=$LIBPATH
export LD_LIBRARY_PATH

verás que NO se exportan las variables.

EL procedimiento sería:
1. Stop the database and stop the listener.

2. Set LD_LIBRARY_PATH so the first directory referenced is $ORACLE_HOME/lib
Example (replace $ORACLE_HOME with the full path of the Oracle home directory):

csh:$ setenv LD_LIBRARY_PATH=$ORACLE_HOME/lib$ setenv LIBPATH=$ORACLE_HOME/lib
ksh:$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib$ export LIBPATH=$ORACLE_HOME/lib
For Oracle9i and Oracle10g on AIX: set environment variable LIBPATH and afterwards, run /usr/sbin/slibclean as root
For Oracle9i and Oracle10g on HP-UX, Linux, Solaris, and Tru64: set environment variable LD_LIBRARY_PATH

3. Re-start the database and the listener.

4. Re-run the export.

No hay comentarios: