PQ79471: JAVA.LANG.VERIFYERROR: OUT OF MEMORY WHEN INSTALLING AN .EAR AND EJB DEPLOY BOX CHECKED.

 A fix is available

Obtain the fix for this APAR



APAR status
Closed as program error.

Error description
Installing a new application that contains EJBs results in
a java out of memory error, java.lang.OutOfMemoryError. The
exception received in the log is...
EJBDeploy java.lang.VerifyError: (class: any.classname)
    Out Of Memory
Followed by a none unique java stack trace.
  The JVM HEAP that ran out of memory is NOT in the AppServer
or DeploymentManager. The EJB Deploy process runs a shell script
that starts a process, this is the process that runs out of
memory. There are 2 ejbdeploy.sh scripts on the HFS. One is a
stub and lives in websphere_root/AppServer/bin/ejbdeploy , this
one is a stub and calls the second. The second is in
/usr/lpp/zWebSphere/V5R0M0/deploytool/itp/plugins/com.ibm.etools
.ejbdeploy/binary/ejbdeploy.sh
and is the smpe install directory and probably R/O mounted, can
NOT be changed.
Local fix
1) use the AAT to generate the deployment and rmic code. In this
   case you would NOT have to check the EJB Deploy box. This is
   probably the easiest.
2)
  - copy the R/O version of

/usr/lpp/zWebSphere/V5R0M0/deploytool/itp/plugins/com.ibm.etools
    .ejbdeploy/binary/ejbdeploy.sh
    to websphere_root/AppServer/bin with a new name. I used
    NEWejbdeploy.sh
  - set EJBD_HEAP_FLAG="-Xms64m -Xmx512m" in NEWejbdeploy.sh
  - run NEWejbdeploy
example: NEWejbdeploy.sh my.ear /tmp/myworkdir /my_out.ear | a2e
    parms are:
      - your ear
      - a R/W working directory
      - ear that is to be created
Problem summary
****************************************************************
* USERS AFFECTED: All users of WebSphere Application Server    *
*                 V5.0 for z/OS                                *
****************************************************************
* PROBLEM DESCRIPTION: Java.lang.verifyerror: Out of Memory    *
*                      when installing an ear and EJB Deploy   *
*                      box checked.                            *
****************************************************************
* RECOMMENDATION:                                              *
****************************************************************
A java.lang.verifyerror: OutofMemory error occurs when the
default JVM Heap size for ejbdeploy.sh is not adequate for large
applications with EJB's.  Need to be able to increase the JVM
Heap as well as change other JVM options during EJB deploy.
Problem conclusion
Code was updated to allow changing JVM options for ejbdeploy
with the use of a new option(EJBDEPLOY_JVM_OPTIONS) that can be
set in <config_root>/DeploymentManager/bin/setupCmdLine.sh or
for Base in <config_root>/AppServer/bin/setupCmdLine.sh to
override current JVM options for EJB deploy
(e.g. export EJBDEPLOY_JVM_OPTIONS="-Xms128m -Xmx512m").

*Note: If at JAVA level SR23 and NOT at WebSphere maintenance
level W502007 or above, problems may occur when installing an
application via the Administrative Console with EJB Deploy box
checked.

This APAR also fixes the problem with getting ascii output
from ejbdeploy.sh that is unreadable on Unix System
Services(USS) shell for z/OS.
Previously ejbdeploy.sh output was only in ascii.
For USS, the output should be in ebcdic so it is readable.
The new ejbdeploy.sh code handles this and no user action is
necessary.

APAR PQ79471 requires a change to the InfoCenter. To access the
latest online documentation, go to the product library page at:

www.ibm.com/software/webservers/appserv/zos_os390/library/

The change is to InfoCenter article
rtrb_ejbdeploy390, which now includes
the following text:

EJBDEPLOY_JVM_OPTIONS
Set the EJBDEPLOY_JVM_OPTIONS property to override the Java
virtual machine (JVM) options that are passed to the code
that deploys the EJBs (ejbdeploy.sh). Set this property in
one of the following locations:
deploymentmanager/bin/setupCmdLine.sh or
appServerHome/bin/setupCmdLine.sh

For example, the following command increases the heap
size of the JVM for ejbdeploy.sh:
export EJBDEPLOY_JVM_OPTIONS="-Xms128m -Xmx512m"

APAR PQ79471 is associated with SERVICE LEVEL W502007 of
WebSphere Application Server V5.0 for z/OS.
Temporary fix Comments
APAR information
APAR number PQ79471
Reported component name WEBSPHERE FOR Z
Reported component ID 5655I3500
Reported release 500
Status CLOSED PER
PE NoPE
HIPER NoHIPER
Special Attention NoSpecatt
Submitted date 2003-10-10
Closed date 2004-04-28
Last modified date 2004-07-16

APAR is sysrouted FROM one or more of the following:

APAR is sysrouted TO one or more of the following:

Modules/Macros
BBOUBINF          

Publications Referenced

Fix information
Fixed component name WEBSPHERE FOR Z
Fixed component ID 5655I3500

Applicable component levels
R500 PSY UQ87899    UP04/05/03 P F404

  Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.


Document Information


Current web document: swg1PQ79471.html
Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server for z/OS
Operating system(s):
Software version: 500
Software edition:
Reference #: PQ79471
IBM Group: Software Group
Modified date: Jul 16, 2004