No suitable driver found when testing a PostgreSQL database collector in RSA Identity Governance & Lifecycle
2 years ago
Originally Published: 2015-11-30
Article Number
000043330
Applies To
RSA Product Set: RSA Identity Governance & Lifecycle 
RSA Version/Condition: 6.9.1, 7.0.x, 7.1.x, 7.2.x, 7.5.x, 8.0
Platform: JBoss/WildFly
 
Issue
After creating a collector of  DB Type: PostgreSQL in RSA Identity Governance & Lifecycle to collect data from a PostgreSQL database, the following errors are displayed in the user interface when testing the collector depending on your RSA Identity Governance & Lifecycle version.
 

RSA Identity Governance & Lifecycle 7.1.1, 7.2.x, 7.5.x, 8.0

java.sql.SQLException:No suitable driver found for jdbc:postgresql://
 
User-added image

RSA Identity Governance & Lifecycle 7.0.x and 7.1.0
 

java.sql.SQLException:No suitable driver found for jdbc:jdbc:postgresql://
 
User-added image
 

RSA Identity Governance & Lifecycle 6.9.1

java.sql.SQLException:No suitable driver found for jdbc:jdbc:postgresql://
 
User-added image

 
Cause
There are two issues:
  1. The default URL for the PostgreSQL database connection contains an extra instance of the string jdbc:, as in the example below:
jdbc:jdbc:postgresql://<host>:<port>/db
  1. There is no PostgreSQL JDBC driver on the application server or the existing PostgreSQL JDBC driver on the server is incompatible with your current version of RSA Identity Governance & Lifecycle.
Resolution
The resolution to this issue is dependent on your RSA Identity Governance & Lifecycle version. The resolution is two-fold:
  1. URL: Remove the extra jdbc: string in the URL.
  2. DRIVER: Download an appropriate PostgreSQL JDBC driver and add it to the RSA Identity Governance & Lifecycle server.

RSA Governance & Lifecycle 7.5.x, 8.0

URL:

The extra jdbc: string in the database connection URL has been removed starting in RSA Identity Governance & Lifecycle 7.1.1 and therefore does not need to be removed in this version.

DRIVER:

Follow the below steps to download the latest PostgreSQL jar file and upload it to SecurID Governance & Lifecycle.
  1. Access the PostgreSQL website  to download the latest PostgreSQL JDBC42 driver that is compatible with SecurID Governance & Lifecycle JDK 1.8 (i.e postgresql-9.4.1212..jar)
  2. Click the Upload button on the "External Jars" page from the Collectors > External Jars menu and upload the Jar file you obtained in step 1.  Note that an ACM restart is not required after uploading the jar.
  3. Try testing the collector again. You should get a Connection Successful message.       


RSA Identity Governance & Lifecycle 7.1.1, 7.2.x

URL:

The extra jdbc: string in the database connection URL has been removed starting in RSA Identity Governance & Lifecycle 7.1.1 and therefore does not need to be removed in this version.

DRIVER:

Follow the below steps to download the latest PostgreSQL jar file and add it to the RSA Identity Governance & Lifecycle aveksa.ear file.
  1. Access the PostgreSQL website  to download the latest PostgreSQL JDBC42 driver that is compatible with RSA Identity Governance & Lifecycle JDK 1.8 (i.e postgresql-9.4.1212..jar)
  2. Add the PostgresSQL driver to the RSA Identity Governance & Lifecycle libraries inside the aveksa.ear file.
In order to modify the aveksa.ear file, use the utility customizeACM.sh in $AVEKSA_HOME/deploy that allows the contents of the aveksa.ear file to be extracted and a customized version rebuilt.
  1. Login as the oracle user.
  2. Make sure that RSA Identity Governance & Lifecycle  is running.
acm status
  1. Go to the $AVEKSA_HOME/deploy directory
cd $AVEKSA_HOME/deploy
  1. Run the customizeACM.sh script to extract the .ear file, specifying the location of the .ear file that you want to modify. Enter
customizeACM.sh -c $AVEKSA_HOME/archive/{ear file to modify}

The contents of the .ear are extracted to a directory called /tmp/customizeACM/.

  1. Copy the downloaded driver postgresql-9.4.1212.jar (in Step 1) to the /tmp/customizeACM/aveksa.ear/aveksa.war/WEB-INF/LocalAgent/common/lib/ directory.
cp <location of postgresql-9.4.1212.jar> /tmp/customizeACM/aveksa.ear/aveksa.war/WEB-INF/LocalAgent/common/lib/
  1. Make sure the file ownership is set to oracle:oinstall and the file permissions are set to rw- for both owner and group owner.
Login as the root user and use the commands below to set the file ownership and permissions.
cd /tmp/customizeACM/aveksa.ear/aveksa.war/WEB-INF/LocalAgent/common/lib/
chown oracle:oinstall postgresql-9.4.1212.jar
chmod 660 postgresql-9.4.1212.jar
  1. Login as the oracle user and run the customizeACM.sh script again to rebuild the .ear file. 
cd $AVEKSA_HOME/deploy
customizeACM.sh -d
The script archives the new .ear file to $AVEKSA_HOME/archive, appends a time and date stamp to the ear filename and deploys the new customized .ear file.
  1. Try testing the collector again. You should get a Connection Successful message.       
 

RSA Identity Governance & Lifecycle 7.0.x and 7.1.0

URL:

Edit the collector Database Connection URL and remove the extra jdbc: value. Change:

FROM:

jdbc:jdbc:postgresql://<host>:<port>/<database>

TO:

jdbc:postgresql://<host>:<port>/<database>

DRIVER:

For RSA Identity Governance & Lifecycle 7.1.0, follow the DRIVER steps under RSA Identity Governance & Lifecycle 7.1.1 above.
For RSA Identity Governance & Lifecycle 7.0.x:
  1. Access the PostgreSQL website  and download the PostgreSQL JDBC41 driver that is compatible with RSA Identity Governance & Lifecycle  7.0.x  JDK 1.7  (i.e postgresql-9.4.1212.jre7.jar)
  2. Follow the DRIVER steps under RSA Identity Governance & Lifecycle 7.1.1 above replacing postgresql-9.4.1212.jar with postgresql-9.4.1212.jre7.jar.
 

RSA Identity Governance & Lifecycle 6.9.1

URL:

Follow the URL steps under RSA Identity Governance & Lifecycle 7.0.x and 7.1.0 above.

DRIVER:

  1. Access the PostgreSQL website  to download the PostgreSQL JDBC4 driver that is compatible with RSA Identity Governance & Lifecycle JDK 1.6 (i.e postgresql-9.4-1205.jdbc4.jar)
  2. Login as the oracle user.
  3. Copy the downloaded postgresql-9.4.1205.jdbc4.jar to $AVEKSA_HOME/jboss/server/default/deploy/aveksa.ear/aveksa.war/WEB-INF/LocalAgent/common/lib/.
cp <location of postgresql-9.4-1205.jdbc4.jar $AVEKSA_HOME/jboss/server/default/deploy/aveksa.ear/aveksa.war/WEB-INF/LocalAgent/common/lib/
  1. Make sure the file ownership is set to oracle:oinstall and the file permissions to rw- for both owner and group.
Login as the root user and use the commands below to set the file ownership and permissions.
cd $AVEKSA_HOME/jboss-4.2.2.GA/server/default/deploy/aveksa.ear/aveksa.war/WEB-INF/LocalAgent/common/lib/
chown oracle:oinstall postgresql-9.4-1205.jdbc4.jar
chmod 660 postgresql-9.4-1205.jdbc4.jar
  1. Restart RSA Identity Governance & Lifecycle.
acm restart