Error in Progress9.1d - JDBC Connection

meltem

New Member
Hi everyone,

I am trying to make a JDBC connection to Progress 9.1d through JDeveloper 10g. I think I defined all the classpaths, etc. correctly (jdbc.jar and progress.jar).

- My driver class name is as shown below:
com.progress.sql.jdbc.JdbcProgressDriver

- And my url is as shown below:
jdbc:jdbcprogress:T:narntsv:23900:rac

I once tried to run "%DLC%\src\samples\sql92\JdbcProgressTest.java" program which comes with the Provision CD.

However, I am always getting the same error (I think there is a problem with allocating the connection handle):

java.lang.UnsatisfiedLinkError: allocConnect

Here are the compiler messages I receive:

D:\jDeveloper\jdk\bin\javaw.exe -ojvm -classpath D:\jDeveloper\jdev\mywork\denemeRAC\Model\classes;D:\dlc91d\java\progress.jar;D:\dlc91d\java\jdbc.jar JdbcProgressTest
DriverManager.getConnection("jdbc:JdbcProgress:T:narntsv:23900:rac")
trying driver[className=com.progress.sql.jdbc.JdbcProgressDriver,com.progress.sql.jdbc.JdbcProgressDriver@3]
*Driver.connect (jdbc:JdbcProgress:T:narntsv:23900:rac)
JDBC to Progress: Checking security
No SecurityManager present, assuming trusted application/applet
JDBCPROGRESS 1.1000
Current Date/Time: Mon Jun 07 14:16:27 EEST 2004
Loading JdbcProgress library
******************java.library.path is C:\WINNT\SYSTEM32;C:\WINNT;C:\WINNT\SYSTEM32\WBEM;C:\PROGRAM FILES\BORLAND\CBUILDER\BIN;D:\PROGRESS91B\bin;C:\j2sdkee1.3.1\bin;C:\j2sdk_nb\j2sdk1.4.2\bin;D:\dlc91d\bin;D:\dlc91d\jdk\bin;D:\dlc91d\jre\bin\hotspot;D:\dlc91d\bin\JdbcProgress.dll;C:\Adabas\bin;C:\Adabas\pgm;c:\pavfn\platinum\;D:\progress91b\java
******************java.class.path is D:\jDeveloper\jdev\mywork\denemeRAC\Model\classes;D:\dlc91d\java\progress.jar;D:\dlc91d\java\jdbc.jar
Allocating Environment handle (SQLAllocEnv)
hEnv=1965669092927392
Returning from initialize --- JdbcProgressDriver.java
Completing JdbcProgressConnection construction -- DriverInterface
Just got a hDbc. Created a connection object. Calling initialize on that.
Exception in thread main
Calling JdbcProgress SQLAllocConnect
Allocating Connection handle (SQLAllocConnect)
@JdbcProgressTest:finally
java.lang.UnsatisfiedLinkError: long com.progress.sql.jdbc.JdbcProgress.allocConnect(long, byte[])
at com.progress.sql.jdbc.JdbcProgress.allocConnect(Native Method)
at com.progress.sql.jdbc.JdbcProgress.SQLAllocConnect(JdbcProgress.java:187)
at com.progress.sql.jdbc.JdbcProgressDriver.allocConnection(JdbcProgressDriver.java:823)
at com.progress.sql.jdbc.JdbcProgressConnection.initialize(JdbcProgressConnection.java:175)
at com.progress.sql.jdbc.JdbcProgressDriver.connect(JdbcProgressDriver.java:168)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:140)
at JdbcProgressTest.main(JdbcProgressTest.java:111)
Process exited with exit code 1.

Why would that be? Please help me.

Thank you,

Meltem
 
I solved the problem

In the environment variable CLASSPATH, couple of directories related to Progress9.1b were also defined (before 9.1d). Because of this, my program was trying to connect a 91d database with a 91b jdbc driver. Only after I erased the directories related to the 91b driver, the program started to uses the directories related to the 91d driver.

Meltem
 
Hi, no I'm not using ODBC driver. I'm using a JDBC driver and connecting with tcp. Thank you anyway, I solved my problem already.
 
Hi,

Try this,

1) Install 91d on server.

2) start your 91b database with the "_mprosrv.exe" program. This program is found in the directory where 91d version is installed. Do not use the one in 91b's installation directory. By this way, you will start your 91b database with a 91d broker.
Example:
c:\DLC91d\BIN\_mprosrv.exe -db d:\pro9\dbname -N TCP -S 36000 -H localhost -cpinternal 1254 -cpstream 1254 -T C:\temp -cpcoll Turkish

3) define these environment variables:
DLC=C:\dlc91d
CLASSPATH=%DLC%\java\progress.jar;%DLC%\java\jdbc.jar
PATH=%DLC%\bin

4) Most importantly, because of the already installed 91b version on your server, there is probably a "PROCLI92.dll" file in "winnt/system32". Although you define the environment variables correctly, the server insists on using the older version jdbc driver because of this file (This was my problem). Rename this file so that the server uses the jdbc driver that you defined in the classpath.

Bye,
 
Back
Top