• 1 reply
  • Latest Post - ‏2010-11-16T15:16:17Z by RobJones
22 Posts

Pinned topic CTG V7.1 and java.class.path

‏2010-03-30T09:10:52Z |
I am running CTG V7.1, and an application trying to connect through it to CTS, failed - said it couldn't find a java class file. Now, I know it is there, as other CTGs are working fine. The failing one seems to have an invalid java.class.path value - in that it references jar files that are not coded in the CTG envvar file. I've checked the omvs segment associated with the CTG userid, and there are no differences between the failing one, and the working one. Any clues as to where else it could be picking up these values? Any help appreciated.
Coded in the envar file
Appearing in the STDERR
java.class.path = :/software/ctg710/classes/ctgclient.jar:/software/ctg710/classes/ctgserver.jar:/software/ctg710/classes/rbsctg.jar:/software/ctg710/classes/ctgserver.jar:/software/ctg710/classes/ctgclient.jar::/software/ctg710/classes/ctgclient.jar:/software/ctg710/classes/ctgserver.jar:/software/ctg710/classes/rbsctg71.jar

It seems to be picking up a whole extra set of classpath settings!
All the envvar files for our running CTGs are all modelled on each other - just CTG name specifics changed.
Updated on 2010-11-16T15:16:17Z at 2010-11-16T15:16:17Z by RobJones
  • RobJones
    11 Posts

    Re: CTG V7.1 and java.class.path

    Hi Shadavamy,

    Probably you have solved this problem by now - but it does look as though you were defining CLASSPATH values in more than one place. Perhaps you have CLASSPATH variable definitions within STDENV, and you are also using a "ctgenvvar" script.

    Assuming you are running the Gateway daemon using CTGBATCH to call the ctgstart script, then there is no need to specify the product JAR file ctgserver.jar or ctgclient.jar in your CLASSPATH variable, via the CTGBATCH STDENV DD data, or via an old ctgenvvar script. The ctgstart script automatically adds these to the classpath on your behalf.

    Specifically, if you use CTGBATCH to run (an unmodified) xyz/bin/ctgstart then 'xyz/classes/ctgserver.jar:xyz/classes/ctgclient.jar' will automatically be added to the classpath by ctgstart - without any regard for whether it might already be there.

    You would typically only specify a CLASSPATH variable if you have user exit code (and it appears you do have some user classes to add there). STDENV environment variables are best used in preference to a ctgenvvar script; using both can be confusing!

    Best regards,