TOMCAT won't start

Issues and Questions related to running Apache Tomcat on z/OS
Post Reply
tigerwing
Posts: 2
Joined: Fri Jul 25, 2008 9:01 am
Location: Southfild, MI

TOMCAT won't start

Post by tigerwing »

I have searched these forums and haven't found anything to help me with my problem. I am installing TOMCAT 5.5.26 on my mainframe. I am using IBM 64-bit SDK verion 6.0 as my java environment. When I try to start TOMCAT as a batch job, the job uses large amounts of CPU and SIO, but never does anything. I eventually have to cancel my job when auxillary storage is used up, which can take 15 minutes. I have included my JCL and the output from the SYSOUT. Would appreciate any input to help me solve this problem.

JCL:
//TSP679TC JOB (679SPT000000000),
// 'D.FRAME',
// CLASS=S,
// MSGCLASS=X,
// NOTIFY=TSP679
/*JOBPARM ROOM=FRAM
//*
//*********************************************************************
//*
//* Batch job to run Tomcat under JZOS
//*
//* Tailor the proc and job for your installation:
//* 1.) Modify the Job card per your installation's requirements
//* 2.) Modify the PROCLIB card to point to JZOS proclib
//* 3.) Set VERSION='14' for Java 1.4 or VERSION='50' for Java 5
//* 4.) Set JAVA_HOME to point the location of the Java SDK
//* 5.) Set CATALINA_HOME to point to the shared Tomcat install dir
//* 6.) (Optional) set CATALINA_BASE to point to instance specific
//* Tomcat base dir
//*
//*********************************************************************
//*
//TOMCAT EXEC PROC=JVMPRC66,VERSION='66',
// LOGLVL='+D',
// JAVACLS='org.apache.catalina.startup.Bootstrap',
// ARGS='start'
//STDENV DD *
# This is a shell script which configures
# any environment variables for the Java JVM.
# Variables must be exported to be seen by the launcher.
. /etc/profile
export JAVA_HOME=/usr/lpp/java/J6.0_64
CATALINA_HOME=/usr/lpp/apache/apache-tomcat-5.5.26
CATALINA_BASE=${CATALINA_HOME}

export PATH=/bin:"${JAVA_HOME}"/bin:

LIBPATH=/lib:/usr/lib:"${JAVA_HOME}"/bin
LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin/classic
export LIBPATH="$LIBPATH":

CLASSPATH="${JAVA_HOME}/lib/tools.jar"
CLASSPATH="$CLASSPATH":"${CATALINA_HOME}/bin/bootstrap.jar"
CLASSPATH="$CLASSPATH":"${CATALINA_HOME}/bin/commons-logging-api-1.1.1.jar"
export CLASSPATH="$CLASSPATH":

# Set JZOS specific options
# Use this variable to specify encoding for DD STDOUT and STDERR
#export JZOS_OUTPUT_ENCODING=IBM-1047
# Use this variable to prevent JZOS from handling MVS operator commands
#export JZOS_ENABLE_MVS_COMMANDS=false
# Use this variable to supply additional arguments to main
#export JZOS_MAIN_ARGS=""

# Configure JVM options
# Note that Tomcat requires default ASCII file.encoding
IJO="-Xms64m -Xmx128m"
IJO="$IJO -Dfile.encoding=ISO8859-1"
IJO="$IJO -Dcatalina.base=${CATALINA_BASE}"
IJO="$IJO -Dcatalina.home=${CATALINA_HOME}"
IJO="$IJO -Djava.io.tmpdir=${CATALINA_BASE}/temp"
IJO="$IJO -Djava.endorsed.dirs="
IJO="${IJO}${CATALINA_HOME}/common/endorsed"

# Configure SDK5.0 to use shared classes (at group level)
# You must comment this out if you are not running SDK 5
groupname=`id -gn`
#IJO="$IJO -Xshareclasses:name=$groupname,groupAccess"
export IBM_JAVA_OPTIONS="$IJO "
#
export JAVA_DUMP_HEAP=false
export JAVA_PROPAGATE=NO
export IBM_JAVA_ZOS_TDUMP=NO
//

SYSOUT output:
JVMJZBL2004N Log level has been set to: D
JVMJZBL1001N JZOS batch Launcher Version: 2.2.1 2008-03-19
JVMJZBL1002N Copyright (C) IBM Corp. 2005. All rights reserved.
JVMJZBL1028I Region requested = 0K, Actual below/above limit = 9M / 1664M, MEMLIMIT=17592186040320M
JVMJZBL1053I OS Release R18.00 Machine 2064
JVMJZBL1036D Spawned child shell process with PID: 67109425
JVMJZBL1005I Output from DD:STDENV config shell script:
JVMJZBL1006I _CXX_LIBDIRS = /lib /usr/lib
JVMJZBL1006I MAIL = /usr/mail/
JVMJZBL1006I JAVA_PROPAGATE = NO
JVMJZBL1006I PATH = /bin:/usr/lpp/java/J6.0_64/bin:
JVMJZBL1006I _CXX_WORK_UNIT = SYSDA
JVMJZBL1006I _CXX_INCDIRS = /usr/include /usr/lpp/cbclib/include
JVMJZBL1006I _C89_OPTIONS = MIN
JVMJZBL1006I IBM_JAVA_ZOS_TDUMP = NO
JVMJZBL1006I _CC_LIBDIRS = /lib /usr/lib
JVMJZBL1006I _C89_SLIB_PREFIX = SYS1
JVMJZBL1006I IBM_JAVA_OPTIONS = -Xms64m -Xmx128m -Dfile.encoding=ISO8859-1 -Dcatalina.base=/usr/lpp/apache/apache-tomcat-5.5.26 -Dca
talina.home=/usr/lpp/apache/apache-tomcat-5.5.26 -Djava.io.tmpdir=/usr/lpp/apache/apache-tomcat-5.5.26/temp -Djava.endorsed.dirs=/us
r/lpp/apache/apache-tomcat-5.5.26/common/endorsed
JVMJZBL1006I _C89_CLIB_PREFIX = CBC
JVMJZBL1006I _CXX_PLIB_PREFIX = CEE
JVMJZBL1006I _CC_WORK_UNIT = SYSDA
JVMJZBL1006I _CC_INCDIRS = /usr/include /usr/lpp/cbclib/include
JVMJZBL1006I _CC_PLIB_PREFIX = CEE
JVMJZBL1006I _BPX_SPAWN_SCRIPT = YES
JVMJZBL1006I _ = /bin/env
JVMJZBL1006I CLASSPATH = /usr/lpp/java/J6.0_64/lib/tools.jar:/usr/lpp/apache/apache-tomcat-5.5.26/bin/bootstrap.jar:/usr/lpp/apache/
apache-tomcat-5.5.26/bin/commons-logging-api-1.1.1.jar:
JVMJZBL1006I LANG = C
JVMJZBL1006I _CXX_OPTIONS = MIN
JVMJZBL1006I LIBPATH = /lib:/usr/lib:/usr/lpp/java/J6.0_64/bin:/usr/lpp/java/J6.0_64/bin/classic:
JVMJZBL1006I _CXX_SLIB_PREFIX = SYS1
JVMJZBL1006I _CXX_CLIB_PREFIX = CBC
JVMJZBL1006I _C89_LIBDIRS = /lib /usr/lib
JVMJZBL1006I _CC_OPTIONS = MIN
JVMJZBL1006I _BPX_SHAREAS = YES
JVMJZBL1006I _C89_WORK_UNIT = SYSDA
JVMJZBL1006I _C89_INCDIRS = /usr/include /usr/lpp/cbclib/include
JVMJZBL1006I _CC_SLIB_PREFIX = SYS1
JVMJZBL1006I _CC_CLIB_PREFIX = CBC
JVMJZBL1006I JAVA_DUMP_HEAP = false
JVMJZBL1006I _C89_PLIB_PREFIX = CEE
JVMJZBL1006I JAVA_HOME = /usr/lpp/java/J6.0_64
JVMJZBL1006I TZ = EST5EDT
JVMJZBL1006I MANPATH = /usr/man/%L
JVMJZBL1006I NLSPATH = /usr/lib/nls/msg/%L/%N
JVMJZBL1006I PWD = /u/tsp679
JVMJZBL1008D ___JZOS_ENV_STOP___

Thanks,

Dave
tigerwing
Posts: 2
Joined: Fri Jul 25, 2008 9:01 am
Location: Southfild, MI

Post by tigerwing »

Looks like I solved my problem.

I replaced my LIBPATH statements from:
LIBPATH=/lib:/usr/lib:"${JAVA_HOME}"/bin
LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin/classic
export LIBPATH="$LIBPATH":

to:
LIBPATH=/lib:/usr/lib:"${JAVA_HOME}"/bin
LIBPATH="$LIBPATH":"${JAVA_HOME}"/lib/s390x
LIBPATH="$LIBPATH":"${JAVA_HOME}"/lib/s390x/j9vm
LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin/classic
export LIBPATH="$LIBPATH":

TOMCAT is now up and running and the sample pages are visible.

Dave
dovetail
Site Admin
Posts: 2022
Joined: Thu Jul 29, 2004 12:12 pm

Post by dovetail »

Thanks for reporting this. We need to update our sample JCL since SDK6 (unfortunately) changed where its libraries are.

Another thing that you might consider is trying the 31-bit JVM. If you don't need a heap over 1.25 GB (you've set your max to 128M) then you don't need a 64 bit JVM, and in fact you will find that the 31 bit JVM performs better than the 64 bit JVM and uses less system resources.
Post Reply