Page 1 of 1

Accessing Infor CloudSuite DataLake from RPG

Posted: Mon Jul 25, 2022 11:31 pm
by mcortilla
Hello,

I am trying to access Infor CloudSuite DataLake (hosted in Amazon Cloud) from a RPG program.
I have used as a template the MSSQLTEST RPG source program, using a specific JDBC driver provided by Infor (Infor Compass JDBC Driver), which I have copied to a IFS folder, and I change the CLASSPATH accordingly in the program.

The connection parameters I use are the following:

conn = JDBC_ConnProp('com.infor.idl.jdbc.Driver'
:'jdbc:infordatalake://TIAUTO_TRN'
: prop );

When debugging, I see the issue comes when the JDBCR4 service program issues this command:

temp = Driver_ConnProp( drv : url: prop );

Here the program stays for a minute approximately (the status message says "Connecting to the database...") and afterwards, as the temp variable is *NULL, it finishes saying "Data Lake is not available".

Important to know that this driver uses OAuth2.0 authentication (it does not use the classical User and password), and the credentials file is stored in the same folder where the .jar driver is located.

I have redirected the STDOUT and STDERR to QSYSPRT, and the first log lines contain this:

Exception in thread "main" java.sql.SQLException: Data Lake is not available
at com.infor.idl.jdbc.Driver.connect(Driver.java:358)
Caused by: java.util.concurrent.CompletionException: com.infor.dmp.common.query.client.QueryClientAuthenticationException: Unable
perform authentication
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:284)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:291)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1617)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)


The question is: can the JDBCR4 program use OAuth2.0 authentication ?
I expect the Compass Driver uses the credentials file (it's a .ionapi file), but I am not sure it works.

In this .ionapi file there are two URLs that the driver must connect to:

https://mingle-ionapi.eu1.inforcloudsuite.com
https://mingle-sso.eu1.inforcloudsuite. ... TO_TRN/as/

I have asked the Infrastructure team to allow traffic from the system to those addresses, and theoretically it is allowed now.
Is there any way to know if the system can really access to them ?

Thanks in advance !

Regards.
Marcel