I’m currently setting up a JDBC connector in SailPoint IdentityIQ to integrate with Google BigQuery using the Simba JDBC driver (com.simba.googlebigquery.jdbc42.Driver).
What I’ve done so far:
Deployed the Simba BigQuery JDBC driver on the IIQ server.
Configured a JDBC Application in IIQ with:
The appropriate connection string
Driver class (com.simba.googlebigquery.jdbc.Driver)
When I run Test Connection or Account Aggregation, I get a NullPointerException in the logs.
After enabling JDBC connector debug logs, the detailed error revealed:
“com.simba.googlebigquery.jdbc.common.SConnection.prepareStatement: [Simba][JDBC](10220) Driver does not support this optional feature.”
However, when I run the same SQL query with the same connection string using a custom test rule inside IIQ, it works perfectly and returns the expected results.
My assumption:
It seems like the default JDBC connector in IIQ is trying to call a feature (some metadata or database features) that the Simba BigQuery driver does not support.
Has anyone successfully integrated Google BigQuery with IIQ’s JDBC connector?
Any suggestions or workarounds — would be greatly appreciated.
I do believe that jdbc connector calls drivers from the connector library jars (WEB-INF/lib-connectors/dbRequired3rdParty), whereas rule query use general IIQ library jars (WEB/lib)
This should explain why the behaviour is different between connector test connection and beanshellJava calls
=> where did you store your driver jar ?
If you want to test a specific driver, some SQL editors like DBeaver allow you to send queries with any driver you’ll provide. By sending the exact same query as in IIQ test connection, you should be able to see if your error is driver-related
I don’t think the issue is with the driver jar location, since the connector is able to detect the jar properly. From my analysis, I noticed that the simba jar has some limitations, like not supporting prepared statements, which means the JDBC connector isn’t fully functional. As a workaround, instead of the JDBC connector, I set up a webservice connector. For test connection and Account aggregation operations, I configured the Sailpoint REST API to trigger a custom workflow. Depending on the operation, I execute Google BigQuery using Beanshell code and return the user data list from the workflow using output variables. These are then passed to the connector, which handles creating the preprocessedObject, and the rest works as it typically does with a webservice connector.