Connecting to 10.x Progress (OpenEdge)
1 July, 2017
Updated documentation can now be found via our YF community HERE
We have potential client who uses progress 10.1 as their database. Is there a driver for Progress DB? Do you have any ideas on how Yellowfin will connect to progress?
Answer
* Progress 10.x is a modern database and offers the choice of ODBC or JDBC connection, the best option is to connect via the JDBC Type IV driver (pure native Java driver).
A type 4 driver converts JDBC calls into the network protocol used by DBMS’s directly. These drivers can be written entirely in Java. Because these drivers translate
JDBC directly into the native protocol without the use of ODBC or native APIs, they can provide for very high performance database access.
The architecture of a Type 4 driver is as follows:
+————-+
| Application |
| Program |
+————-+
|
+————-+
| JDBC method |
| library |
+————-+
|
| (network connection)
|
+————-+
| Database |
| |
+————-+
* Progress supports SQL 92 standard syntax
Connection to a progress database via SQL requires the ?Client Network? license. (A full install license or the client Network license will install the JDBC JAR files necessary to connect)
The following are OpenEdge 10.1A and later JDBC components
On Windows:
%DLC%javaopenedge.jar #Progress OpenEdge Driver and DataSource classes
%DLC%javautil.jar #Classes that are used by and required by the Progress OpenEdge driver
%DLC%javabase.jar #Classes that are used by and required by the Progress OpenEdge driver
%DLC%javapool.jar #DataDirect Connection Pool Manager classes
%DLC%javaspy.jar On UNIX including Sun Solaris SPARC (32 bit and 64 bit) , Compaq Tru64 UNIX , Linux X86, IBM AIX, HP-UX (32 bit and 64 bit)
$DLC/java/openedge.jar #Progress OpenEdge Driver and DataSource classes
$DLC/java/util.jar #Classes that are used by and required by the Progress OpenEdge driver
$DLC/java/base.jar #Classes that are used by and required by the Progress OpenEdge driver
$DLC/java/pool.jar #DataDirect Connection Pool Manager classes
$DLC/java/spy.jar
1) The first step to configure the JDBC driver is to set CLASSPATH.
CLASSPATH=$DLC/java/openedge.jar: $DLC/java/util.jar: $DLC/java/base.jar:$CLASSPATH
On Windows you might need to set CLASSPATH within the environment of your Java client.
2) To load the driver, make sure that the application loads the class “com.ddtek.jdbc.openedge.OpenEdgeDriver”. For example, add the java call:
Class.forName( “com.ddtek.jdbc.openedge.OpenEdgeDriver”);
3) To establish a connection, the following is a sample of the connection string:
Connection con = DriverManager.getConnection ( url ); String url;url = new String ( “jdbc:datadirect:openedge://myhost:6718;databaseName=sports2000;user = jones;password = secret” );
Or you can also use:
Connection con = DriverManager.getConnection ( url);jdbc:datadirect:openedge://host:port;databaseName=db_name;servicename=service_name;defaultSchema=schema_name;statementCacheSize=CacheSize;
The database connection URL:
jdbc:datadirect:openedge://:;databaseName=
needs to be replaced with the hostname the database is running on
needs to be replaced with the service port the database server is listening
Example URL for the sports2000 database running on host localhost port 6789:
jdbc:datadirect:openedge://localhost:6789;databaseName=sports2000
* In 10.2B and above the logical database name is case sensitive & may be substituted by the physical pathname eg c:dbdb
Hope this helps.
Regards
Justin Hewitt
Yellowfin