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.
RobJones 060000F25C11 Posts
Re: CTG V7.1 and java.class.path2010-11-16T15:16:17ZThis is the accepted answer. This is the accepted answer.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!