Thread: Driver could not be loaded (0) SQLSTATE=IM002

Driver could not be loaded (0) SQLSTATE=IM002

From
Srimathi Chandrasekaran
Date:
hi
i am using the following versions for building rls server against
gLobustollkit4.0

psqlodbc-07.03.0200
postgresql-8.0.1
libiodbc-3.52.4
I want to know whether my installation was correct.
1.I have set the environmental varaibles as follows
setenv GLOBUS_LOCATION0/usr/local/globus-4.0.1
# setenv GLOBUS_IODBC_PATH $GLOBUS_LOCATION
# setenv ODBCINI $GLOBUS_LOCATION/var/odbc.ini
 2. for libiodbc-3.52.4
I have done everything as a root

% ./configure --prefix=$GLOBUS_IODBC_PATH --disable-gtktest --with-pthreads
--disable-gui --with-iodbc-inidir=$ODBCINIDIR (i have set ODBCINDIR variable
also)
make
make install
everything is successfully built.
2. i have created odbc.ini in  $GLOBUS_LOCATION/var and copied that to
odbcinst.ini which is in the same directory itself
and my odbc.ini file looks like this
odbc.ini

[ODBC Data Sources]
 lrc1000=lrc database
 rli1000=rli database

 [lrc1000]
 Description  = LRC database
 DSN          = lrc1000
 Driver       =/usr/local/globus-4.0.1/lib/psqlodbc.so
 Servertype   = postgres
 SERVER       = localhost
 USER         = dbuser
 Password     =
 Database     = lrc1000
 OPTION       = 3
 Trace        = off
   port        =5432

 [rli1000]
 Description  = RLI database
 DSN          = rli1000
 Driver       = /usr/local/globus-4.0.1/lib/psqlodbc.so

 Servertype   = postgres
 SERVER       = localhost
 USER         = dbuser
 Password     =
 Database     = rli1000
 OPTION       = 3
 Trace        = off

  port=5432



[Default]
Driver=/usr/local/globus-4.0.1/lib/psqlodbc.so
port=5432
3.i have installed postgresql
./configure --prefix=$GLOBUS_LOCATION--without readline(if i didnt give this
--without readline then it wasnot  able to configure)
make
make install
this was built sucessfully
chown -R postgres:postgres /usr/local/globus-4.0.1
 su - postgres



cd /usr/local/globus-4.0.1
bin/initdb -D ./data
bin/pg_ctl -D ./data -l data/logfile start
bin/createuser
bin/createdb -O dbuser  -U dbuser  -W lrc1000
bin/createdb -O dbuser  -U dbuser  -W rli1000
bin/psql -l
it also listed the databases whatever i have
then i created the database schema by using the commands
psql -W -U dbuser  -d lrc1000  -f
$GLOBUS_LOCATION/setup/globus/globus-rls-lrc-postgres.sql
psql -W -U dbuser  -d rli1000  -f
$GLOBUS_LOCATION/setup/globus/globus-rls-rli-postgres.sql

4. i have installed psqlODBC
./configure --prefix=$GLOBUS_LOCATION--enable threads
make
make install
this was installed properly


But when i run the iodbctest
$GLOBUS_IODBC_PATH/bin/iodbctest "DSN=lrc1000;UID=dbuser;PWD="
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0406.0126
1: SQLDriverConnect = [iODBC][Driver Manager]Data source name not found and no
default driver specified. Driver could not be loaded (0) SQLSTATE=IM002
1: ODBC_Connect = [iODBC][Driver Manager]Data source name not found and no
default driver specified. Driver could not be loaded (0) SQLSTATE=IM002
i have gone through email archive but i couldn't get much of it
i am having sleepless nights because of this.
whether anybody can tell me whether my installa tion procedure  is correct?
IF u have any rough idea on what direction i proceed it will be great help to
me.
thanks for your time and consideration
cheers
srimathi.c

Re: Driver could not be loaded (0) SQLSTATE=IM002

From
Ludek Finstrle
Date:
> psqlodbc-07.03.0200

quite old. You could try 07.03.026X version from pgfoundry.org.

> I want to know whether my installation was correct.
> 1.I have set the environmental varaibles as follows
> setenv GLOBUS_LOCATION0/usr/local/globus-4.0.1
> # setenv GLOBUS_IODBC_PATH $GLOBUS_LOCATION
> # setenv ODBCINI $GLOBUS_LOCATION/var/odbc.ini

The # char mean comment out the line?
Do you specify it in each session? Or do you specify only for install?

>  2. for libiodbc-3.52.4
> I have done everything as a root
>
> % ./configure --prefix=$GLOBUS_IODBC_PATH --disable-gtktest --with-pthreads
> --disable-gui --with-iodbc-inidir=$ODBCINIDIR (i have set ODBCINDIR variable

I see no $ODBCINIDIR definition. I see only definition of $ODBCINI.

> But when i run the iodbctest

Do you have specified in this session $ODBCINI?

> $GLOBUS_IODBC_PATH/bin/iodbctest "DSN=lrc1000;UID=dbuser;PWD="
> iODBC Demonstration program
> This program shows an interactive SQL processor
> Driver Manager: 03.52.0406.0126
> 1: SQLDriverConnect = [iODBC][Driver Manager]Data source name not found and no
> default driver specified. Driver could not be loaded (0) SQLSTATE=IM002

FAQ for iODBC says:

[iODBC][Driver Manager]Data source name not found and no default driver specified. Driver could not be loaded,
SQLSTATE=IM002

There are several reasons why this message could occur. The best solution
is to trace through what's happening: your application has been linked
against libiodbc, which has tried to find an odbc.ini file one way or
another - either through the ODBCINI environment variable or the fall-back
paths (typically /etc/odbc.ini, depending on how it was compiled). You
should check that such a file exists in a suitable location, and that
it is accessible (particularly if your application runs with different
user privileges - such as apache/php running as a www-data user).

Additionally, it could be that iODBC has found a suitable odbc.ini file,
but none of the file(s) found contain the DSN you've requested. Check
the syntax of your request - is the ODBC connect-string correct, and
does the DSN you're requesting exist? See also the section of this
FAQ, above, entitled `What's an odbc.ini and what do I put in it?'.

Regards,

Luf

Re: Driver could not be loaded (0) SQLSTATE=IM002

From
Ludek Finstrle
Date:
> I have set the environmental variables for each session.
> I have set the ODBCINIDIR as $GLOBUS_LOCATION/var
> I have specified the odbcini for the session in which i have iodbctest
>  echo $ODBCINI
> /usr/local/globus-4.0.1/var/odbc.ini
>
> Enter ODBC connect string (? shows list): rli1000

Is it typo error? You define lrc1000 or do I remember it wrong?
BTW what is showed when you enter "?"?

> Whether i have to create another odbc.ini in /etc directory (copy of odbc.ini
> that is located in /usr/local/globus-4.0.1/var/odbc.ini
> )?

It isn't final solution. But let's try it. If it helps you have got good
start point.

BTW you specified DSN = whatever. I think it couldn't be there.
My suggestion is minimize the odbc.ini. See the example at
http://www.iodbc.org/index.php?page=docs/faq#iodbc333712082

Regards,

Luf