eFix (APAR): PQ67354 Status: eFix For Release: WebSphere 4.0.5 AE For Operating System: all CMVC defect: PQ67354 Required eFixes: none Include eFixes: none Byte size of APAR: 867,222 bytes Date: 10/18/2002 Abstract: JSPBATCHCOMPILER FAILS IF EAR INSTALLED IN DIFFERENT DIR ON HORIZONTAL CLONE Description/symptom of problem: There exists a condition when using horizontal clones in a Server Group that will cause the jspBatchCompiler to fail. If the directory location for the EAR is different on the 2 nodes the jspBatchCompiler will fail on one of the nodes with a NullPointerException. Stack trace looks like the following on the base WebSphere 4.0.3 installation: java.lang.NullPointerException at org.apache.jasper.compiler.ibmtools.AEBatchC.compileDir(AEBatchC.java:373) at org.apache.jasper.compiler.ibmtools.AEBatchC.buildTempDirectoryAndCompile(AEBatchC.java:324) at org.apache.jasper.compiler.ibmtools.AEBatchC.compileEnterpriseApp(AEBatchC.java:189) at org.apache.jasper.compiler.ibmtools.AEBatchC.compile(AEBatchC.java:155) at org.apache.jasper.compiler.ibmtools.JspBatchCompiler.compile(JspBatchCompiler.java:17) at org.apache.jasper.compiler.ibmtools.JspBatchCompiler.main(JspBatchCompiler.java:28) at java.lang.reflect.Method.invoke(Native Method) at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:158) This directory can be different for multiple reasons. It can be different if the WebSphere installation is different from one machine. An example would be where one node1 has installed WebSphere in /opt/WebSphere/AE and node2 has installed WebSphere in /opt/WebSphere/AppServer. Then the EAR would be installed as follows: node1: /opt/WebSphere/AE/installedApps/earFileName node2: /opt/WebSphere/AppServer/installedApps/earFileName. Runtime of this example would work ok but the jspBatchComple will not work on one of the nodes. Another example would exist if after installing the EAR, the EAR's install directory is changed as with WebSphere Commerence Suite. The workaround for this situation is to have both node's clones have identical install names for WebSphere and the EAR file. Directions to apply efix: 1) Create temporary "efix" directory to store the zip/tar file: AIX: /tmp/WebSphere/efix Solaris/Linux: /tmp/WebSphere/efix Windows: c:\temp\WebSphere\efix 2) Copy zip/tar file to the directory 3) Unzip/untar the file 4) Shutdown WebSphere 5) Run the jar file with the following command answering questions/prompts as they appear: java -jar PQ67354_eFix_AEServer.jar 6) Restart WebSphere 7) The temp directory may be removed but the zip/tar file should be saved. Do not remove any files created and stored in the /WebSphere/AppServer/efix/PQ67354 directories. These files are required if an efix is to be removed. Directions to remove an efix: NOTE: EFIXES MUST BE REMOVED IN THE ORDER THEY WERE APPLIED. DO NOT REMOVE AN EFIX UNLESS ALL EFIXES APPLIED AFTER IT HAVE FIRST BEEN REMOVED. YOU MAY REAPPLY ANY REMOVED EFIX. Example: If your system has efix1, efix2, and efix3 applied in that order and efix2 is to be removed, efix3 must be removed first, efix2 removed, and efix3 re-applied. 1) Change directory to the efix location (/WebSphere/AppServer/efix/PQ67354). 2) Shutdown WebSphere 3) Run the backup jar file with the following command: java -jar PQ67354_eFix_AEServer_backup.jar 4) Restart WebSphere 5) To enable view the additional information provided below. Directions to re-apply an efix: Follow the instructions for applying an efix. If the backup files still exist (from the previous efix application), you will be prompted to overwrite. Answer "yes" at the overwrite prompts.