Whilst the Part 1 and Part 2 series on Pentaho Data Integration configuration presented the happy path, inevitably connectivity issues can arise if you don't get everything right. From personal experience, I have listed a number of checks that can be checked to incorporate into your troubleshooting if your initial connection configuration is not successful.
- Check to ensure you can connect to the database with another application (I use DBeaver and TOAD for SQL Server)
- Ensure you have the database vendors jdbc driver (jar file) downloaded and placed in the
- Ensure that the JNDI key-value pairs are entered correctly in the
jdbc.propertiesfile found in the
- You did remember to restart Spoon between entering the JNDI configuration and attempting to configure a database connection within a data project?
- Is the database instance being connected to listening on a non-default port? See the relevent section in Part 1.
JNDI Name consistency is the key
Recently I was refactoring the JNDI names in my PDI jdbc.properties file and when I went to configure the connection in Spoon, the test resulted in an error illustrated below.
I viewed the entries in the jdbc.properties file...
EXTwrk/type=javax.sql.DataSource EXTwrk/driver=org.postgresql.Driver EXTwrk/url=jdbc:postgresql://localhost:/myDBname EXwrk/user=myUserName EXTwrk/password=mySecurePassword
It didn't take long to find the issue. Notice the JNDI connection name for the user variable? Misspelt. Doh!! And that was it. Fixed the user key from
EXTwrk and all was good. From experimentation, you can find that the error sentence
Required subelement indicates the line that the JNDI connection is not working, in this example, the JNDI
This ends my three-part series on JNDI configuration in Pentaho. I hope this will help someone in the future. And remember, having a centralised configuration strategy certainly helps with maintainability of your data projects.
If you have any feedback regarding this JNDI series, please leave a message on my discourse forum.