My Tomcat is down and I can't get it up.

Issues and Questions related to running Apache Tomcat on z/OS
Post Reply
rbjone
Posts: 9
Joined: Thu Mar 08, 2007 10:01 am

My Tomcat is down and I can't get it up.

Post by rbjone »

I have been running Tomcat 5.5.20 under JZOS 1.2.5 for over a year and it has worked great. I recently downloaded JZOS 2.2.1 and installed it. The sample "hello world" program runs fine. I switched my Tomcat Proc over to use JZOS 2.2.1 and the proc starts to run and spawns another task and just "hangs". It does the same thing whether I run it as a job or a started task. I changed back to JZOS 1.2.5, and the I get the same results. It goes into a "SWAPPED,FILE SYS KERNEL WAIT" before the jvm is initialized.

The last thing written to SYSOUT is:

JVMJZBL1001N JZOS batch Launcher Version: 2.2.1 Alphaworks 2007-11-19
JVMJZBL1002N Copyright (C) IBM Corp. 2005. All rights reserved.

I assume that it is waiting on a file that is unavailable, but I don't know what it would be.

I would appreciate any help that anyone can offer.

Thanks,

Russ
coz
Posts: 391
Joined: Fri Jul 30, 2004 5:29 pm

Post by coz »

Russ,

You may have a problem in your environment script, or the JCL configuration of the alphaWorks code (it's different from 1.2.5). Try running with LOGLVL='+T' and post your results. We should be able to tell something from that trace.
rbjone
Posts: 9
Joined: Thu Mar 08, 2007 10:01 am

Trace Output

Post by rbjone »

Here is my JZOS output with the trace:

01:49:54 JZOSVM50(N): log level has been set to: T
01:49:54 JZOSVM50(T): -> JzosVM()
01:49:54 JZOSVM50(N): Copyright (C) IBM Corp. 2006. All rights reserved.
01:49:54 JZOSVM50(N): Version 1.2.5
01:49:54 JZOSVM50(T): <- JzosVM()
01:49:54 JZOSVM50(T): -> run()
01:49:54 JZOSVM50(I): Region requested = 512M, Actual below/above limit = 10M / 512M
01:49:54 JZOSVM50(T): -> adoptEnvironment()
01:49:55 JZOSVM50(T): Writing shell script to child's stdin:
01:49:55 JZOSVM50(T): # This is a shell script which configures
01:49:55 JZOSVM50(T): # any environment variables for the Java JVM.
01:49:55 JZOSVM50(T): # Variables must be exported to be seen by the launcher.
01:49:55 JZOSVM50(T): . /etc/profile
01:49:55 JZOSVM50(T): export JZOS_HOME=/prod/jzos/JZOS_HOME
01:49:55 JZOSVM50(T): export JAVA_HOME=/usr/lpp/java/J5.0
01:49:55 JZOSVM50(T): TOMCAT_HOME=/test/tomcat/TOMCAT_HOME
01:49:55 JZOSVM50(T):
01:49:55 JZOSVM50(T): export PATH=/bin:"${JAVA_HOME}"/bin:
01:49:55 JZOSVM50(T):
01:49:55 JZOSVM50(T): LIBPATH=/lib:/usr/lib:"${JAVA_HOME}"/bin
01:49:55 JZOSVM50(T): LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin/classic
01:49:55 JZOSVM50(T): LIBPATH="$LIBPATH":"${JZOS_HOME}"
01:49:55 JZOSVM50(T): export LIBPATH="$LIBPATH":
01:49:55 JZOSVM50(T):
01:49:55 JZOSVM50(T): CLASSPATH="${JAVA_HOME}/lib/tools.jar"
01:49:55 JZOSVM50(T): CLASSPATH="$CLASSPATH":"${TOMCAT_HOME}/bin/bootstrap.jar"
01:49:55 JZOSVM50(T): CLASSPATH="$CLASSPATH":"${JZOS_HOME}/jzos.jar"
01:49:55 JZOSVM50(T): export CLASSPATH="$CLASSPATH":
01:49:55 JZOSVM50(T):
01:49:55 JZOSVM50(T): # Set JZOS specific options
01:49:55 JZOSVM50(T): # Use this variable to specify encoding for DD STDOUT and STDERR
01:49:55 JZOSVM50(T): #export JZOS_OUTPUT_ENCODING=Cp1047
01:49:55 JZOSVM50(T): # Use this variable to prevent JZOS from handling MVS operator commands
01:49:55 JZOSVM50(T): #export JZOS_ENABLE_MVS_COMMANDS=false
01:49:55 JZOSVM50(T): # Use this variable to supply additional arguments to main
01:49:55 JZOSVM50(T): #export JZOS_MAIN_ARGS=""
01:49:55 JZOSVM50(T):
01:49:55 JZOSVM50(T): # Configure JVM options
01:49:55 JZOSVM50(T): # Note that Tomcat requires default ASCII file.encoding
01:49:55 JZOSVM50(T): IJO="-Xms64m -Xmx128m"
01:49:55 JZOSVM50(T): IJO="$IJO -Dfile.encoding=ISO8859-1"
01:49:55 JZOSVM50(T): IJO="$IJO -Djzos.home=${JZOS_HOME}"
01:49:55 JZOSVM50(T): IJO="$IJO -Dcatalina.base=${TOMCAT_HOME}"
01:49:55 JZOSVM50(T): IJO="$IJO -Dcatalina.home=${TOMCAT_HOME}"
01:49:55 JZOSVM50(T): IJO="$IJO -Djava.io.tmpdir=${TOMCAT_HOME}/temp"
01:49:55 JZOSVM50(T): IJO="$IJO -Djava.endorsed.dirs="
01:49:55 JZOSVM50(T): IJO="${IJO}${TOMCAT_HOME}/common/endorsed"
01:49:55 JZOSVM50(T): # Uncomment the following if you want to run without JIT
01:49:55 JZOSVM50(T): #IJO="$IJO -Djava.compiler=NONE"
01:49:55 JZOSVM50(T): export IBM_JAVA_OPTIONS="$IJO "
01:49:55 JZOSVM50(T):
01:49:55 JZOSVM50(T): export JAVA_DUMP_HEAP=false
01:49:55 JZOSVM50(T): export JAVA_PROPAGATE=NO
01:49:55 JZOSVM50(T): export IBM_JAVA_ZOS_TDUMP=NO
01:49:55 JZOSVM50(D): Output from DD:STDENV config shell script:
01:49:56 JZOSVM50(D): Starting hfscheck
01:49:56 JZOSVM50(D): lcat failed RC 4
01:49:56 JZOSVM50(D): return code=
01:49:56 JZOSVM50(D): 386400258
01:49:56 JZOSVM50(D): No Catalog Alias
01:49:58 JZOSVM50(D):
01:49:58 JZOSVM50(D): Group: OMVSGRP
01:49:58 JZOSVM50(D):
01:49:59 JZOSVM50(D): chown: FSUM6180 file "/u/INETD": EDC5129I No such file or directory.
01:49:59 JZOSVM50(D): chmod: FSUM6188 stat file "/u/INETD": EDC5129I No such file or directory.
01:50:00 JZOSVM50(D): cd: /etc/profile 310: .: /u/INETD: EDC5129I No such file or directory.
01:50:00 JZOSVM50(D):
01:50:00 JZOSVM50(D): HOME Directory: /u/INETD
01:50:00 JZOSVM50(D):

Thanks for your help,

Russ
coz
Posts: 391
Joined: Fri Jul 30, 2004 5:29 pm

Post by coz »

Russ,

It's not clear what is causing the hang, but you have several issues that should be looked at. You're running Tomcat under UID 0, which is almost certainly not a good idea. This is causing you not to be able to find home directory somewhere in your installation's /etc/profile.

Sorry we can't be of any more help.
rbjone
Posts: 9
Joined: Thu Mar 08, 2007 10:01 am

Post by rbjone »

I am still having the same problem, but I have some extra details that may give someone a clue about what is going on.

We have three MVS LPARS in our shop (test, development, and production). Before the problems, I had one Tomcat image running in development and one in production. I brought down the dev Tomcat to switch from JZOS 1.2.5 to 2.2.1. I never could get Tomcat back up with either JZOS 1.2.5 or 2.2.1. I was, however able to bring up the same Tomcat image in our test lpar. I have been running it there for the last week or so. This morning it will no longer come up in the test lpar. I cannot think of anything that changed from yesterday to today.

I have tried running it under different profiles, and I even did a fresh install of Tomcat. I am running out of troubleshooting ideas. Any suggestion will be greatly appreciated.

Russ
rbjone
Posts: 9
Joined: Thu Mar 08, 2007 10:01 am

Post by rbjone »

I have another quick update.

It seems that the problem is not related to Tomcat specifically, but JZOS in general. I am having the same problem trying to run the JZOS "helloworld" sample program. The job starts and then just hangs. I don't see any errors in the log or the trace. It looks like it is hangs right before the JVM is initialized.

Russ
rbjone
Posts: 9
Joined: Thu Mar 08, 2007 10:01 am

Post by rbjone »

I seem to have resolved the problem although I don't know what exactly was causing it.

I found a post on the JZOS forum that talked about a JZOS child process hanging. It was suggested to comment out /etc/profile in the startup config script. When I did that, Tomcat came up fine. Nothing has changed recently in our /etc/profile, so I don't know why we started having problems all of a sudden, but it appears I found the fix.

Russ
Post Reply