libjvm.so NOT FOUND

General discussion on the JZOS batch launcher and toolkit
Post Reply
steveo
Posts: 6
Joined: Mon Jun 13, 2005 2:15 pm

libjvm.so NOT FOUND

Post by steveo »

running latest version of JZOS get following error from batch job.
STDENV has the correct LIBPATH - we use it for other apps. Any thoughts as to solution.? module is in bolded lib. STDENV entries are below error text.

********************************* TOP OF DATA **********************************
JZOSVM14(N): Copyright (C) 2004 Dovetailed Technologies LLC. All rights reserved
JZOSVM14(N): JZOS Version 1.2.1
CEE3501S The module libjvm.so was not found.
From entry point JzosVM::initializeVMArgs() at compile unit offset +000
address 2BA0252C.
******************************** BOTTOM OF DATA ********************************

000018 //STDENV DD *
000019 export PATH=.:/bin:/usr/sbin:/usr/etc:/usr:/usr/lpp/java/J1.4/bin:$PATH
000020 export WAS_Root=apps/websphere/was51/usr/lpp/zWebSphere/V5R1M0
000021 export JAVA_HOME=/usr/lpp/java/javats23/
000022 export XML_Root="/usr/lpp/ixm/IBM/xml4j-4_2"
000023 export JZOS_HOME="/apps/jzos"
000024 export CLASSPATH=$CLASSPATH:/usr/lpp/java/J1.4/bin
000025 export CLASSPATH=$CLASSPATH:/usr/lpp/java/J1.4/bin/classic
000026 export CLASSPATH=$CLASSPATH:$XML_Root/
000027 export CLASSPATH=$JZOS_HOME:$CLASSPATH:
000028 export CLASSPATH=$CLASSPATH:/u/a056748
000029 export LIBPATH=\
000030 /usr/lpp/java/J1.4/bin/classic:\
000031 /usr/lpp/java/J1.4/bin:\
000032 /lib:\
000033 /usr/lpp/ixm/IBM/xml4c-5_4/lib
000034
000035 /*
thanks
Steve
dovetail
Site Admin
Posts: 2025
Joined: Thu Jul 29, 2004 12:12 pm

Post by dovetail »

Please rerun the job with LOGLVL='+I' and examine the output to see that the environment variables, especially LIBPATH are set correctly.

I am not sure that the use of a back-slash contination line will be recognized by the shell if your source is in a dataset that has spaces following the backslash. The sample JZOS scripts use shell variables to configure variable concatenations. So, you may want to start with this and just add to it any libraries that you require.

For example:

LIBPATH=/lib:/usr/lib:"${JAVA_HOME}"/bin
LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin/classic
LIBPATH="$LIBPATH":"${JZOS_HOME}"
LIBPATH='$LIBPATH":/another/library/that/you/require
export LIBPATH="$LIBPATH"

Note: Another problem with your script is that the JZOS_HOME directory is not in the libpath. This would cause problems a little later in the startup process.

IMO, it would be nice if the JZOS launcher stripped trailing spaces from the input so as to allow for the trailing backslash character to be used as in your example. We will look into providing this is a future release.
steveo
Posts: 6
Joined: Mon Jun 13, 2005 2:15 pm

Post by steveo »

Thanks for the help..
not being much of a USS guru, I was unaware of the STDENV formats...
I tried what you suggested and now get a not found --
Pls note that jzos.jar is explicitly referenced in CLASSPATH..
Steve

Code: Select all

********************************* TOP OF DATA **********************************
JZOSVM14(N): Copyright (C) 2004 Dovetailed Technologies LLC. All rights reserved
JZOSVM14(N): JZOS Version 1.2.1                                                 
JZOSVM14(N): Java Virtual Machine created.  Version information follows:        
Could not find Class com.dovetail.jzos.ZUtil 
                                                                                
Exception in thread "main"                                                      
JZOSVM - failed.  RC=121.                                                       
Here's JCL...

Code: Select all


 //JAVAJVM  EXEC EXJZOSVM,                                               
 //   LOGLVL='+1',                                                       
 //*  LEPARM='RPTOPTS(ON),RPTSTG(ON)',                                   
 //   JAVACLS='XMLParseValidate'                                         
 //XML      DD DSN=FST.CSTAMP.XMLHDR,DISP=SHR                            
 //         DD DSN=FST.ACP1.CSMX629A.REXXML.PRODMAYX,DISP=SHR            
 //SYSPRINT DD SYSOUT=*          < System stdout                         
 //SYSOUT   DD SYSOUT=*          < System stderr                         
 //STDOUT   DD SYSOUT=*          < Java System.out                       
 //STDERR   DD SYSOUT=*          < Java System.err                       
 //STDENV DD *                                                           
 export JAVA_HOME=/usr/lpp/java/javats23/                                
 export JZOS_HOME="/apps/jzos"                                           
 LIBPATH=/lib:/usr/lib:"${JAVA_HOME}"/bin                                
 LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin/classic                           
 LIBPATH="$LIBPATH":"${JZOS_HOME}"                                       
 LIBPATH="$LIBPATH":/usr/lpp/ixm/IBM/xml4c-5_4/lib                       
 export LIBPATH="$LIBPATH"                                               
 export PATH=.:/bin:/usr/sbin:/usr/etc:/usr:/usr/lpp/java/J1.4/bin:$PATH 
 export WAS_Root=apps/websphere/was51/usr/lpp/zWebSphere/V5R1M0          
 export XML_Root="/usr/lpp/ixm/IBM/xml4j-4_2"                            
 CLASSPATH="$JZOS_HOME":/jzos.jar 
 CLASSPATH="$CLASSPATH":/usr/lpp/java/J1.4/bin                           
 CLASSPATH="$CLASSPATH":/usr/lpp/java/J1.4/bin/classic                   
 CLASSPATH="$CLASSPATH":$XML_Root/:/u/a056748                            
 export CLASSPATH="$CLASSPATH"                                           
 /*
steveo
Posts: 6
Joined: Mon Jun 13, 2005 2:15 pm

Post by steveo »

Ok, figured it out.... it was STDENV formats...
works with this...

Code: Select all

//JAVAJVM  EXEC EXJZOSVM,                                               
//   LOGLVL='+1',                                                       
//*  LEPARM='RPTOPTS(ON),RPTSTG(ON)',                                   
//   JAVACLS='XMLParseValidate'                                         
//XML      DD DSN=FST.CSTAMP.XMLHDR,DISP=SHR                            
//         DD DSN=FST.ACP1.CSMX629A.REXXML.PRODMAYX,DISP=SHR            
//SYSPRINT DD SYSOUT=*          < System stdout                         
//SYSOUT   DD SYSOUT=*          < System stderr                         
//STDOUT   DD SYSOUT=*          < Java System.out                       
//STDERR   DD SYSOUT=*          < Java System.err                       
//STDENV DD *                                                           
export JAVA_HOME=/usr/lpp/java/javats23/                                
export JZOS_HOME="/apps/jzos/"                                          
export XML_Root="/usr/lpp/ixm/IBM/xml4j-4_2"                            
LIBPATH=/lib:/usr/lib:"${JAVA_HOME}"/bin                                
LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin/classic                           
LIBPATH="$LIBPATH":"${JZOS_HOME}"                                       
LIBPATH="$LIBPATH":"${XML_ROOT}"                                        
export LIBPATH="$LIBPATH"                                               
export PATH=.:/bin:/usr/sbin:/usr/etc:/usr:/usr/lpp/java/J1.4/bin:$PATH 
export WAS_Root=apps/websphere/was51/usr/lpp/zWebSphere/V5R1M0          
CLASSPATH="${JZOS_HOME}"/jzos.jar                                       
CLASSPATH="$CLASSPATH":/usr/lpp/java/J1.4/bin                           
CLASSPATH="$CLASSPATH":/usr/lpp/java/J1.4/bin/classic                   
CLASSPATH="$CLASSPATH":$XML_Root/:/u/a056748                            
export CLASSPATH="$CLASSPATH"                                           
dovetail
Site Admin
Posts: 2025
Joined: Thu Jul 29, 2004 12:12 pm

Post by dovetail »

Its not clear what was different that fixed your problem.

A couple of comments -

- I don't think that XML4J has native code, so I don't know why you need it in LIBPATH. You have a case mismatch problem with $XML_PATH anyway, so I don't think that its being added to your LIBPATH correctly anyway.

- You don't need to add the JVM bin and bin/classic directories to your CLASSPATH. Adding extra directories to the CLASSPATH only slows down classloader lookup.

- the LOGLVL option should be '+I', as in "informational". It looks as if you have a one. If you have +I, the launcher will dump the environment just prior to loading the JVM. This is the best source of information to shoot problems.
Post Reply