Progress 9.1E - ODBC with Perl Installation Problems

adrade

New Member
Hi All,

I'm really hoping someone can help me out here with this problem. I'm fairly new to both Progress and ODBC, so I could very well be missing something staring me something straight in the face. I'm trying to compile the DBD::ODBC module for Perl with the ODBC driver included in the 9.1E installation (the Merant driver). I believe I have all my environment variables set correctly, and I'm running Linux:

Code:
DLC=/usr/local/dlc9.1e
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=::ffff:10.0.1.2 34281 22
PROLIBPATH=:/usr/local/dlc9.1e/odbc/lib
WRKDIR=/usr/local/prowork
OLDPWD=/home/adrade/src
SSH_TTY=/dev/pts/13
USER=adrade
LD_LIBRARY_PATH=:/usr/local/dlc9.1e/odbc/lib
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
MAIL=/var/spool/mail/adrade
PATH=/usr/local/dlc9.1e/bin:/usr/kerberos/bin:/usr/dlc/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/adrade/bin
INPUTRC=/etc/inputrc
PWD=/home/adrade/src/DBD-ODBC-1.13
LANG=en_US.UTF-8
PS1=proenv>
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
DBI_DSN=dbi:ODBC:dbname
SHLVL=2
HOME=/home/adrade
ODBCINI=/usr/local/dlc9.1e/odbc/odbc.ini
LOGNAME=
ODBCHOME=/usr/local/dlc9.1e/odbc
SSH_CONNECTION=::ffff:10.0.1.2 34281 ::ffff:10.10.1.152 22
DLCBIN=/usr/dlc/bin
DBI_USER=
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/env
So, in the DBD::ODBC installation directory, I run Makefile.PL after a few edits that I actually extracted from a DataDirect document. It runs, with the following output, and all seems to be going well.

Code:
Useless use of private variable in void context at Makefile.PL line 435.

Configuring DBD::ODBC ...

>>>     Remember to actually *READ* the README file!
        And re-read it if you have any problems.

Using DBI 1.54 (for perl 5.008008 on i686-linux) installed in /usr/local/lib/perl5/site_perl/5.8.8/i686-linux/auto/DBI/
Using ODBC in /usr/local/dlc9.1e/odbc

Umm, this looks like a intersolve type of driver manager.
You seem to have the official header files.

Injecting selected odbc driver into cc command
Injecting selected odbc driver into cc command
Using DBI 1.54 (for perl 5.008008 on i686-linux) installed in /usr/local/lib/perl5/site_perl/5.8.8/i686-linux/auto/DBI/
Writing Makefile for DBD::ODBC

The DBD::ODBC tests will use these values for the database connection:
    DBI_DSN=dbi:ODBC:dbname              e.g. dbi:ODBC:demo
    DBI_USER=user
    DBI_PASS=
Warning: not all required environment variables are set.
then, I run make, with warnings that don't look too bad to me...

Code:
>make
cp Changes blib/lib/DBD/ODBC/Changes.pm
cp ODBC.pm blib/lib/DBD/ODBC.pm
/usr/bin/perl -p -e "s/~DRIVER~/ODBC/g" /usr/local/lib/perl5/site_perl/5.8.8/i686-linux/auto/DBI/Driver.xst > ODBC.xsi
/usr/bin/perl /usr/local/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap /usr/local/lib/perl5/5.8.8/ExtUtils/typemap  ODBC.xs > ODBC.xsc && mv ODBC.xsc ODBC.c
Warning: duplicate function definition 'data_sources' detected in ODBC.xs, line 202
cc -c   -I. -I/usr/local/lib/perl5/site_perl/5.8.8/i686-linux/auto/DBI -I/usr/local/dlc9.1e/odbc/include -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2   -DVERSION=\"1.13\" -DXS_VERSION=\"1.13\" -fpic "-I/usr/local/lib/perl5/5.8.8/i686-linux/CORE"   ODBC.c
cc -c   -I. -I/usr/local/lib/perl5/site_perl/5.8.8/i686-linux/auto/DBI -I/usr/local/dlc9.1e/odbc/include -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2   -DVERSION=\"1.13\" -DXS_VERSION=\"1.13\" -fpic "-I/usr/local/lib/perl5/5.8.8/i686-linux/CORE"   dbdimp.c
Running Mkbootstrap for DBD::ODBC ()
chmod 644 ODBC.bs
rm -f blib/arch/auto/DBD/ODBC/ODBC.so
LD_RUN_PATH="/usr/local/dlc9.1e/odbc/lib" cc  -shared -L/usr/local/lib ODBC.o dbdimp.o  -o blib/arch/auto/DBD/ODBC/ODBC.so      \
   -L/usr/local/dlc9.1e/odbc/lib -R/usr/local/dlc9.1e/odbc/lib -lodbc   \

cc: unrecognized option `-R/usr/local/dlc9.1e/odbc/lib'
chmod 755 blib/arch/auto/DBD/ODBC/ODBC.so
cp ODBC.bs blib/arch/auto/DBD/ODBC/ODBC.bs
chmod 644 blib/arch/auto/DBD/ODBC/ODBC.bs
Manifying blib/man3/DBD::ODBC.3
then, I run 'make test', and get overloaded with errors. I'll display the entire output below, but it essentially goes like this:

Code:
DBI connect('majdb','root',...) failed: Specified driver could not be loaded (SQL-IM003)(DBD: db_login/SQLConnect err=-1)
So, I'm a bit confused. I'm wondering if I'm simply missing something simple here, or if anyone has run into a similar problem. Any help or information at all is very much appreciated!

Best,
-Adam

The full make test output follows:

Code:
>make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01base.........ok
t/02simple.......ok 1/36DBI connect('majdb','root',...) failed: Specified driver could not be loaded (SQL-IM003)(DBD: db_login/SQLConnect err=-1) at t/02simple.t line 21
Undefined subroutine &main::BAILOUT called at t/02simple.t line 23.
# Looks like you planned 36 tests but only ran 2.
# Looks like your test died just after 2.
t/02simple.......dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 3-36
        Failed 34/36 tests, 5.56% okay
t/03dbatt........ok 1/24DBI connect('majdb','root',...) failed: Specified driver could not be loaded (SQL-IM003)(DBD: db_login/SQLConnect err=-1) at t/03dbatt.t line 24
Undefined subroutine &main::BAILOUT called at t/03dbatt.t line 26.
# Looks like you planned 24 tests but only ran 2.
# Looks like your test died just after 2.
t/03dbatt........dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 3-24
        Failed 22/24 tests, 8.33% okay
t/05meth.........ok 1/8DBI connect('majdb','root',...) failed: Specified driver could not be loaded (SQL-IM003)(DBD: db_login/SQLConnect err=-1) at t/05meth.t line 24
Undefined subroutine &main::BAILOUT called at t/05meth.t line 26.
# Looks like you planned 8 tests but only ran 1.
# Looks like your test died just after 1.
t/05meth.........dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 2-8
        Failed 7/8 tests, 12.50% okay
t/07bind.........ok 1/11DBI connect('majdb','root',...) failed: Specified driver could not be loaded (SQL-IM003)(DBD: db_login/SQLConnect err=-1) at t/07bind.t line 22
Undefined subroutine &main::BAILOUT called at t/07bind.t line 24.
# Looks like you planned 11 tests but only ran 1.
# Looks like your test died just after 1.
t/07bind.........dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 2-11
        Failed 10/11 tests, 9.09% okay
t/08bind2........ok 1/5DBI connect('majdb','root',...) failed: Specified driver could not be loaded (SQL-IM003)(DBD: db_login/SQLConnect err=-1) at t/08bind2.t line 26
Undefined subroutine &main::BAILOUT called at t/08bind2.t line 28.
# Looks like you planned 5 tests but only ran 2.
# Looks like your test died just after 2.
t/08bind2........dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 3-5
        Failed 3/5 tests, 40.00% okay
t/09multi........ok 1/7DBI connect('majdb','root',...) failed: Specified driver could not be loaded (SQL-IM003)(DBD: db_login/SQLConnect err=-1) at t/09multi.t line 26
Undefined subroutine &main::BAILOUT called at t/09multi.t line 28.
# Looks like you planned 7 tests but only ran 3.
# Looks like your test died just after 3.
t/09multi........dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 4-7
        Failed 4/7 tests, 42.86% okay
t/20SqlServer....ok 1/37DBI connect('majdb','root',...) failed: Specified driver could not be loaded (SQL-IM003)(DBD: db_login/SQLConnect err=-1) at t/20SqlServer.t line 47
Undefined subroutine &main::BAILOUT called at t/20SqlServer.t line 49.
# Looks like you planned 37 tests but only ran 2.
# Looks like your test died just after 2.
t/20SqlServer....dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 3-37
        Failed 35/37 tests, 5.41% okay
t/30Oracle.......ok 1/4DBI connect('majdb','root',...) failed: Specified driver could not be loaded (SQL-IM003)(DBD: db_login/SQLConnect err=-1) at t/30Oracle.t line 26
Undefined subroutine &main::BAILOUT called at t/30Oracle.t line 28.
# Looks like you planned 4 tests but only ran 2.
# Looks like your test died just after 2.
t/30Oracle.......dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 3-4
        Failed 2/4 tests, 50.00% okay
Failed Test     Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/02simple.t     255 65280    36   68 188.89%  3-36
t/03dbatt.t      255 65280    24   44 183.33%  3-24
t/05meth.t       255 65280     8   14 175.00%  2-8
t/07bind.t       255 65280    11   20 181.82%  2-11
t/08bind2.t      255 65280     5    6 120.00%  3-5
t/09multi.t      255 65280     7    8 114.29%  4-7
t/20SqlServer.t  255 65280    37   70 189.19%  3-37
t/30Oracle.t     255 65280     4    4 100.00%  3-4
Failed 8/9 test scripts, 11.11% okay. 117/137 subtests failed, 14.60% okay.
make: *** [test_dynamic] Error 255
 

adrade

New Member
Hi everyone... I figured this error out, and figured I'd post in case anyone else in the future encountered the same error. The answer is actually in KnowledgeBase article 2549932MJ. Because we're running RedHat, another environmental variable needed to be set:

Code:
[FONT=Courier]LD_ASSUME_KERNEL=2.4.1[/FONT]

Now, I'm getting the error:

Code:
DBI connect('dbname','user',...) failed: [DataDirect][ODBC PROGRESS driver][PROGRESS]Database not started (SQL-HY000)(DBD: db_login/SQLConnect err=-1)

The database has certainly been started, or at least I've been told by our Progress experts it has. If anyone has any insight, I'd appreciate it.

Thanks,
-Adam
 

Baz

New Member
Hi Adam,

Were you able to fix this problem? I've been using DBD::JDBC as a proxy with the Progress JDBC driver. It works, but it's quite slow. A more "native" solution would be better. ODBC should be faster than the perl->dbd->jdbc->rdbms route. (I'm using progress 9.1d)

Hope to hear from you!

Regards,

Bas
 

adrade

New Member
Hi Adam,

Were you able to fix this problem? I've been using DBD::JDBC as a proxy with the Progress JDBC driver. It works, but it's quite slow. A more "native" solution would be better. ODBC should be faster than the perl->dbd->jdbc->rdbms route. (I'm using progress 9.1d)

Hope to hear from you!

Regards,

Bas


Yeah, I got it working - after quite a bit of grief. I'll try to post all the steps later to this thread, for future sufferers like you and me. :)
 
Top