Hitachi Vantara Pentaho Community Forums
Results 1 to 5 of 5

Thread: 4.1.0 - java.io.File parameter must be a directory. [./simple-jndi]

  1. #1

    Default 4.1.0 - java.io.File parameter must be a directory. [./simple-jndi]

    I'm trying to migrate from 3.2.5 to 4.1.0 and am only getting this error with 4.1.0(I went back and forth). I have the same jndi.properties files copied to both data-integration directories.

    This is the snippit of code from the log.

    INFO 15-07 09:13:31,507 - NDW JNDI MySQL - New database connection defined
    ERROR 15-07 09:13:31,534 - Count incomplete revisions - An error occurred, processing will be stopped:
    Error occured while trying to connect to the database
    java.io.File parameter must be a directory. [/home/users/kettle/CLIENT/simple-jndi]

    I have three steps in this transform that hit the db, and all 3 are giving the same error. I tried deleting and recreating the step using spoon 4.1.0 but I still get the error. I did some searching and can see that others have had this issue but don't see any resolutions to the issues.

  2. #2

    Default

    To test this further, I tried creating a step that JUST does a database input in 4.1.0 and it fails with the same error. I also tried copying in a copy of a data-integration folder from another box that works (but doesn't use jndi) and that still gives me the same error. I've given the data-integration folder full permissions. I'm starting to get smashy...

  3. #3

    Default

    So I figured out the issue.

    PDI 4.1.0 no longer expects the simple-jndi folder to be in the data-integration directory. It now seems to be relative to where the file was started from, NOT relative to where the job/transform is. This isn't really a good thing, as now if I run my job from my linux script it expects the simple-jndi folder to be in one place, if I run it through cron, it expects it to be one level higher, causing me to keep a duplicate of the file.

    EDIT: I went searching to see if I could find any documentation on this change for a reason why(because there's probably a good one) but haven't yet found any. I'm going to keep looking.
    Last edited by dilbert; 08-09-2011 at 09:29 AM.

  4. #4
    Join Date
    May 2010
    Posts
    18

    Default

    I have the same issue when using kitchen.sh and pan.sh in v4.1 and v4.2. Not a problem when running from spoon because spoon reads the jdbc.properties from <PDI-HOME>/simple-jndi directory. This is a different behavior from v3.2. Where can I define where the simple-jndi/jdbc.properties is? There is a case in JIRA that mention KETTLE_JNDI_ROOT parameter. However, how does it work?

  5. #5
    Join Date
    May 2010
    Posts
    18

    Default

    I found the answer. KETTLE_JNDI_ROOT java runtime option is introduced in v4.0 (See http://jira.pentaho.com/browse/PDI-2975) However, it is not added to the default kitchen.sh and pan.sh. So you need to modify the default shell scripts to specify the KETTLE_JNDI_ROOT option explicitly. For example:
    Before
    OPT="...-DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT"
    After
    OPT="...-DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT -DKETTLE_JNDI_ROOT=$BASEDIR/simple-jndi"

    If KETTLE_JNDI_ROOT is not set, you can set org.osjava.sj.root instead according to the jira link.


    spoon.sh doesn't have such parameter but it works because spoon.sh has a command to cd to the the $BASEDIR of PDI-HOME and, unlike the kitchen.sh and pan.sh, there is no subsequent cd. Since simple-jndi is under $BASEDIR, spoon.sh never fails to find simple-jndi. So the second option of modifying the kitchen.sh and pan.sh is to add a simple command of "cd $BASEDIR" right before the line
    "$_PENTAHO_JAVA" $OPT org.pentaho.di.pan.Pan "${1+$@}"

    But I like the KETTLE_JNDI_ROOT option because it gives you better flexibility if you have multiple simple-jndi directories for whatever reason.

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.