Revision history [back]

Ultimately metadaddy is correct in that the JDBC Driver Manager was clearly confused. However I didn't want to have to manually inform JDBC steps on every pipeline of the driver to use via the Legacy Drivers input. But it is good to know about the feature.

We ended up solving this in a very inelegant fashion. The bug was consistent and occurred on both our test and production stack, so we could play around on the test env to try to fix it manually.

We already had logging at DEBUG level so could see the driver loads. After loading the MySQL JDBC driver, after the first restart it was loading both drivers. After a second restart later, it solely saw the MySQL driver from that point forward even after further restarts.

Steps to fix:

• Confirm bug: Postgres JDBC not working, and log shows only MySQL loaded.
• Shut down SDC.
• Move the included PostgreSQL driver jar out of internal lib dir streamsets-libs/streamsets-datacollector-jdbc-lib/lib/ to a holding place.
• Restart SDC. Postgres JDBC still doesn't work (of course not), log still showing only MySQL driver loaded.
• Shut down SDC again.
• Move the PostgresSQL driver jar back into that internal lib dir.
• Restart SDC.
• Now JDBC lib working again. Verified Postgres JDBC now working, and shows MySQL and Postgres driver both loaded.