Replies: 13 comments
-
Hello @mplaum, Instead of putting the jar ( Please let me know if it helps. |
Beta Was this translation helpful? Give feedback.
-
Thank you for the great suggestion, @ShadelessFox! I gave that a test - for each of the driver definitions I added the folder with the configuration file (Infor Compass JDBC Driver.ionapi). The error that I get now is this:
Unfortunately the driver file name is not configurable, and is the same for all of the tenants, so they have to be in separate folders. |
Beta Was this translation helpful? Give feedback.
-
Can you please send the log files when the error occurs? You can find instructions here: https://dbeaver.com/docs/wiki/Log-files/. Thank you. |
Beta Was this translation helpful? Give feedback.
-
Unfortunately, GitHub can't attach files when you answer by email, so I don't see the files you sent. Can you please go to GitHub and attach them there? |
Beta Was this translation helpful? Give feedback.
-
Log file attached. Thank you! |
Beta Was this translation helpful? Give feedback.
-
It looks like you still have two separate jars added for two drivers, respectively. Keep just a single jar in a global classpath and remove them from drivers' files. |
Beta Was this translation helpful? Give feedback.
-
I will give that a try! Thank you. |
Beta Was this translation helpful? Give feedback.
-
Unfortunately that didn't work - The driver requires the connection detail file to be located in the same folder as the driver. Since the connection detail file has a specific file name (Infor Compass JDBC Driver.ionapi), and we have three tenants that we are using this with. we can't have all of them in the same folder as the driver since they have the same name. |
Beta Was this translation helpful? Give feedback.
-
How is the driver supposed to be used? I'm not following. It forces the user to use two separate jar files, but it seems impossible. |
Beta Was this translation helpful? Give feedback.
-
I can give an example of how we use it with our ODBC/JDBC bridge driver - I hope it helps:
We were trying to use the same method with DBeaver - the issue that is causing us grief is the requirement that the .ionapi file needs to be in the same folder as the driver - that's how the driver is coded to locate that file. |
Beta Was this translation helpful? Give feedback.
-
The issue is not related to DBeaver. Please look at the JDBC driver's docs on how to use the driver in this specific scenario. |
Beta Was this translation helpful? Give feedback.
-
Just an update - I found a way to make it work. The Infor Data Fabric allows the .ionAPI file contents to be added to the connection string. These need to be URLEncoded first. From the Infor Data Fabric User Guide:
|
Beta Was this translation helpful? Give feedback.
-
Description
We have a vendor-supplied JDBC driver which we use to connect to their cloud data source.
The driver is designed so that a configuration file (with endpoint details, credentials etc.) are co-located with the driver, and these have a specific file name - so they must be in separate folders.
This works correctly when we connect to only one endpoint.
When connecting to separate endpoints, we have to create separate driver definitions for each one (in separate folders), since we can't define a separate home folder at the connection level.
Here's where the issue lies: If we open one connection using a specific driver, it opens correctly. Opening a second connection causes an error, since the driver being used for the previous connection is already loaded, and then causes an error when loading the new driver.
The only way to open the second connection is to close DBeaver and reopen it, and select that connection first.
The error is:
ClassCastException: attempting to castjar:file:/C:/Connections/Tenant_01/infor-compass-jdbc-2022.10 .jar!/com/infor/idl/shaded/javax/ws/rs/client/ClientBuilder.class to jar:file:/C:/Connections/Tenant_02/infor-compass-jdbc-2022.10 .jar!/com/infor/idl/shaded/javax/ws/rs/client/ClientBuilder.class
So we can see that the driver from Tenant_01 is still loaded while we are trying to load the copy of the same driver in Tenant_02.
I have tried to resolve this by re-naming the .jar files (giving them unique names), but this does not correct the issue.
DBeaver Version
Community Edition 23.0.1
Operating System
Windows 10
Database and driver
Database: Infor Data Lake
Driver: infor-compass-jdbc-2022.10 .jar
Steps to reproduce
Additional context
No response
Beta Was this translation helpful? Give feedback.
All reactions