Progress 9.1D connection problem

phagos

New Member
I realize this is probably an elementary question to many. My company has an internal Java project that requires us to connect to a product that uses Progress as the backend - version 9.1D07. We've copied the jar from the project with the jdbc classes in it, but when I try to connect to the database, I keep getting this:

Unable to load JdbcProgress library
no JdbcProgress in java.library.path
Unable to load JdbcProgress library
Unable to allocate environment
Returning from initialize --- JdbcProgressDriver.java
java.sql.SQLException: Unable to load JdbcProgress library
at com.progress.sql.jdbc.JdbcProgress.<init>(JdbcProgress.java:162)
at com.progress.sql.jdbc.JdbcProgressDriver.initialize(JdbcProgressDriver.java:321)
at com.progress.sql.jdbc.JdbcProgressDriver.connect(JdbcProgressDriver.java:155)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
...
getConnection: no suitable driver found for jdbc:JdbcProgress:T:******
java.sql.SQLException: No suitable driver found for jdbc:JdbcProgress:T:******
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
...
SQLException: SQLState(08001)

We know the connection string is correct, we took it out of the product's configuration file. I know the jar file is on the classpath, it's sitting in the lib directory in a web application and the IDE is including that in the build path.

We have no problem with Oracle or SQLServer connections. What am I missing?

Thanks
 
Setting environment variables
Because the driver is a combination of Java and C/C++ code, a Type 2 JDBC driver requires that both the CLASSPATH and the library path be set on each client machine. Doing so enables the driver to access both the Java class files and the C/C++ libraries.

CLASSPATH
The CLASSPATH points to the location of OpenEdge JDBC driver classes.

Library path
The library path points to the location of the JdbcProgress library and OpenEdge client library (procli92).

procli92.lib is located in $DLC/lib folder and depending on your OS you need to set one of the following system variables:
HP_UX: SHLIB_PATH = $DLC/lib
IBM AIX: LIBPATH=$DLC/lib
UNIX (other): LD_LIBRARY_PATH=$DLC/lib
Win: PATH=$DLC/bin
 
Thanks medu.

Is there no pure JDBC driver available for Progress? We've never had to deal with it before. And we don't have direct access to that machine. Do I need to copy binary files from the database server to my machine in order to connect to it?
 
Progress 9.1d is more than 10 years old software. It has long been retired by Progress - it's unsupported and, especially in the SQL92 engine, buggy. You should consider to upgrade to the recent OpenEdge release as soon as possible.

Heavy Regards, RealHeavyDude.
 
Is there no pure JDBC driver available for Progress?
Sure it is, as the 'real heavy dude' said you can get a pure Java type 4 driver if you update to the latest OpenEdge version available for Progress... so, if that is an option for you then you definitively should go for it.

Do I need to copy binary files from the database server to my machine in order to connect to it?
If you want to connect from your machine then yes but unless you have the same OS as the database server i doubt you can actually use that library.

We did wrote a pure Java JDBC driver using OpenClient to connect to Progress AppServer but although this can be made to work with earlier Progress versions that have OpenClient interface this will probably mean some code rewrite, if you have Progress AppServer available and can consider such an option then I might take a look to see how difficult will be to adapt it to Progress v9.

Otherwise I do think Data Direct had a better JDBC driver at the time that was in fact lately included in Progress distribution and become the 'de facto' driver for Progress.
 
Thanks for your help. Unfortunately, the database is, or rather was, distributed as part of a proprietary system that the company uses. We can't upgrade just Progress. I'm aware of the age of the system, but we are not in a position to do anything about it.
 
Back
Top