• Publicidad

Conexión con DB2

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Notapor piero66 » 2009-03-02 16:20 @722

mira, el "make test" arroja esto...

Código: Seleccionar todo
make[1]: se ingresa al directorio `/home/inst1/sqllib/DBD-DB2-1.6/Constants'
make[1]: se sale del directorio `/home/inst1/sqllib/DBD-DB2-1.6/Constants'
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/base....install_driver(DB2) failed: Can't load '/home/inst1/sqllib/DBD-DB2-1.6/blib/arch/auto/DBD/DB2/DB2.so' for module DBD::DB2: libdb2.so.1: no se puede abrir el fichero del objeto compartido: No existe el fichero o el directorio at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.
 at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.
Perhaps a required shared library or dll isn't installed where expected
 at t/base.t line 16
t/base....dubious
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 4-5
        Failed 2/5 tests, 60.00% okay
t/main....ok
Failed Test Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/base.t       2   512     5    4  80.00%  4-5
Failed 1/2 test scripts, 50.00% okay. 2/6 subtests failed, 66.67% okay.
make: *** [test_dynamic] Error 255


el "make install" arroja este mensaje:

Código: Seleccionar todo
make[1]: se ingresa al directorio `/home/inst1/sqllib/DBD-DB2-1.6/Constants'
make[1]: se sale del directorio `/home/inst1/sqllib/DBD-DB2-1.6/Constants'
Manifying blib/man3/Bundle::DBD::DB2.3pm
Manifying blib/man3/DBD::DB2.3pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/DB2/DB2.so
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/DB2/.packlist
Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod


mira, a fin de cuentas no me ejecuta mi archivo que es lo que realmente me interesa. El error es el siguiente: (o mensajes)

Código: Seleccionar todo
Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/DB2/DB2.so' for module DBD::DB2: libdb2.so.1: no se puede abrir el fichero del objeto compartido: No existe el fichero o el directorio at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.
 at dbddb2.pl line 4
Compilation failed in require at dbddb2.pl line 4.
BEGIN failed--compilation aborted at dbddb2.pl line 4.


y el archivo es este:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use DBI;
 use DBD::DB2;

my $string = "dbi:DB2:DATABASE=ICMSDSDB; HOSTNAME=192.1.1.1; PORT=50001; PROTOCOL=TCPIP; UID=icmadmin; PWD=*******;";
my $dbh = DBI->connect($string, icmadmin, ******) || die "Connection failed with error: $DBI::errstr";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Publicidad

Notapor explorer » 2009-03-02 16:32 @730

Creo que debes usar el export... :)

Actualización: ¿Seguro que en /home/inst1/sqllib/DBD-DB2-1.6/blib/arch/auto/DBD/DB2/ hay un fichero llamado DB2.so? Según el primer mensaje, sí. Entonces, no entiendo porqué falla el test.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2009-03-02 16:41 @736

Mira a ver que tengas instalado en el sistema el fichero libdb2.so.1, que es la librería que el módulo está intentando leer.

Debería haber sido instalado con el DB2.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor piero66 » 2009-03-02 17:02 @751

o sea, ¿debo de hacer más de un export...?

Mira los pasos que ejecuto son estos:

Código: Seleccionar todo
export DB2_HOME=/opt/ibm/db2/V9.1
perl Makefile.PL
make
make test
make install


Busqué el archivo... y está en las siguientes rutas:
Código: Seleccionar todo
/opt/ibm/db2/V9.1/lib64/libdb2.so.1
/opt/ibm/db2/V9.1/lib32/libdb2.so.1


No sé si fallé por alguna situación y no pueda copiar este archivo a la ubicación donde están las librerías Perl y tenga que hacerlo la instalación.

/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/

Digo ahora ya no me queda claro si solo es un export, o hay que aplicar un export antes de cada ejecución de comandos (make, make test, etc) de instalación, pero en la anterior instalación solo fue una vez la que lo hice... digo lo único que ha cambiado es que es otro sistema operativo, o no sé, tal vez me falta otra librería que en el anterior servidor ya tenía... no sé... :cry:
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Notapor explorer » 2009-03-02 17:27 @769

No. El export está bien hecho.

El problema está en la instalación de DB2: no ha terminado de colocar la librería libdb2.so.1 en un directorio público del sistema (como por ejemplo /lib, /usr/lib, /usr/lib64, etc, etc.) Y por eso DBD::DB2 no lo encuentra.

Hay tres opciones. Cualquiera te vale.
1.- Vuelve a comprobar la instalación de DB2, y mira a ver que no falte un último paso para colocar ese fichero. Si es así, ejecútalo.
2.- Copiar el fichero (lib64/libdb2.so.1) a /usr/lib64, por ejemplo, y probar.
3.- Editar el fichero /etc/ld.so.conf y añadir allí la ruta /opt/ibm/db2/V9.1/lib64/ y ejecutar luego /sbin/ldconfig para que el sistema rehaga los enlaces a las librerías.

Luego, para comprobar que está bien instalado, prueba con
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
perl -MDBD::DB2 -e 1
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Si no sale nada, todo está bien.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor piero66 » 2009-03-03 09:52 @453

Excelente, explorer... calé esta opción.

3.- Editar el fichero /etc/ld.so.conf y añadir allí la ruta /opt/ibm/db2/V9.1/lib64/ y ejecutar luego /sbin/ldconfig para que el sistema rehaga los enlaces a las librerías.


y todo OK...

Muchas gracias.
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Anterior

Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 5 invitados

cron