Hitachi Vantara Pentaho Community Forums
Results 1 to 3 of 3

Thread: Unable to find datasource by JNDI name - Pentaho 7.0

  1. #1
    Join Date
    Apr 2015
    Posts
    13

    Default Unable to find datasource by JNDI name - Pentaho 7.0

    I'm having a problem executing a transformation from Spoon on Server that uses a JNDI connection. I get a "Unable to find datasource by JNDI name" error. On client, I edited the jdbc.properties file in data-integration\simple-jndi folder, and when I run it on Local, it works. It just fails when run with Environment Type = Server. All this transformation does is insert a record into a table on MS SQL Server 2008R2. I'm using the sqljdbc4.jar.

    I'm using a new installation of Enterprise Edition Pentaho 7 on Ubuntu 16.04.1. Used the Installation Wizard, chose "Keep it simple. Give me everything" option. I've creatd a support ticket, but the particular person assigned this time can't figure it out.

    I've followed the instructions in the "Tomcat JNDI Connections" section at
    https://help.pentaho.com/Documentati...Pentaho_Server

    I edited these files
    /home/pentaho/Pentaho/server/pentaho-server/tomcat/webapps/pentaho/WEB-INF/web.xml
    /home/pentaho/Pentaho/server/pentaho-server/tomcat/webapps/pentaho/META-INF/context.xml

    I've tried many different versions of the resource in context.xml, always with same result. But, I'm thinking, based on the error, it sounds like it's never even seeing that Resource? Is there another step I'm missing where I need to define the the data source?

    Here's the relevant portion of web.xml:
    <resource-ref>
    <description>PxDbDataMart-paytronix_me_data_mart</description>
    <res-ref-name>jdbc/PxDbDataMart-paytronix_me_data_mart</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>

    And my latest attempt at the Resource from context.xml:
    <Resource name="jdbc/PxDbDataMart-paytronix_me_data_mart" auth="Container"
    factory="org.apache.commons.dbcp2.BasicDataSourceFactory"
    type="javax.sql.DataSource" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    url="jdbc:sqlserver://wal1dev-txdb2:1433;DatabaseName=paytronix_me_data_mart;integratedSecurity=false"
    username="XXX" password="XXX" maxTotal="200" maxIdle="50"
    maxWaitMillis="10000"/>



    Here's the relevant section of output:
    2017/01/18 11:18:35 - PurRepository - Connected to the enterprise repository
    2017/01/18 11:18:36 - bhtest - Dispatching started for transformation [bhtest]
    2017/01/18 11:18:36 - wal1dev-txdb2_JNDI - ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : Unable to find datasource by JNDI name: PxDbDataMart-paytronix_me_data_mart
    2017/01/18 11:18:36 - wal1dev-txdb2_JNDI - ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : org.pentaho.di.core.database.DataSourceNamingException:
    2017/01/18 11:18:36 - wal1dev-txdb2_JNDI - javax.naming.NamingException: Invalid data source:'PxDbDataMart-paytronix_me_data_mart'
    2017/01/18 11:18:36 - wal1dev-txdb2_JNDI - Invalid data source:'PxDbDataMart-paytronix_me_data_mart'

  2. #2
    Join Date
    Apr 2015
    Posts
    13

    Default

    Also, here's relevant portion from jdbc.properties file:

    PxDbDataMart-paytronix_me_data_mart/type=javax.sql.DataSource
    PxDbDataMart-paytronix_me_data_mart/driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
    PxDbDataMart-paytronix_me_data_mart/url=jdbc:sqlserver://wal1dev-txdb2:1433;DatabaseName=paytronix_me_data_mart;integratedSecurity=false
    PxDbDataMart-paytronix_me_data_mart/user=XXX
    PxDbDataMart-paytronix_me_data_mart/password=XXX

  3. #3
    Join Date
    Apr 2015
    Posts
    13

    Default

    Coworker solved it. My resource definition had wrong factory, and was missing validationQuery.

    <Resource name="jdbc/PxDbDataMart-paytronix_me_data_mart" auth="Container"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory"
    type="javax.sql.DataSource" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    url="jdbc:sqlserver://wal1dev-txdb2:1433;DatabaseName=paytronix_me_data_mart;integratedSecurity=false"
    username="XXX" password="XXX" maxTotal="200" maxIdle="50"
    maxWaitMillis="10000" validationQuery="select 1"/>

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Privacy Policy | Legal Notices | Safe Harbor Privacy Policy

Copyright © 2005 - 2019 Hitachi Vantara Corporation. All Rights Reserved.