Fix (APAR): PK99815 Status: Fix Release: 7.0.0.5,7.0.0.3,7.0.0.1,7.0 Operating System: AIX,HP-UX,IBM i,Linux,Solaris,Windows Supersedes Fixes: CMVC Defect: xxxxxx Byte size of APAR: 24184 Date: 2009-10-29 Abstract: Slow application deployment resulting from zip file decompression overhead Description/symptom of problem: PK99815 resolves the following problem: ERROR DESCRIPTION: PK94209 corrects the following problem: Improve application deployment performance by expanding nestedarchives to temporary storage when an access threshold is reached. However, there was an error in the packaging of the interim fix for PK94209 which would cause the installation of subsequent interim fixes to fail. PK99815 supercedes PK94209 and repackages the interim fix to correct this problem. LOCAL FIX: PROBLEM SUMMARY USERS AFFECTED: All users of IBM WebSphere Application Server version 7.0 PROBLEM DESCRIPTION: Slow application deployment resulting from zip file decompression overhead RECOMMENDATION: None This update provides a performance enhancement by reducing the overhead of accessing entries in nested archives. Overhead is reduced by expanding the nested archive to a temporary location, and by using that temporary copy of the nested archive for further accesses. For medium to large sized applications, without this update, the overall cost of accessing entries within nested archives can grow to be in excess of an hour. Frequent access is made to entries within nested archives during the deployment of new enterprise application. The performance improvements provided by this update apply mostly to application deployment operations. Getting input streams for entries from within nested archives is expensive due to archive decompression overhead. A request for an input on an entry in a nested archive requires a scan and decompression from the beginning of that nested archive. PROBLEM CONCLUSION: This update provides a performance enhancement by enabling the extraction of temporary copies of nested archive files when repeated access is made to entries within the nested archives. When obtaining an input stream for a entry from within a nested archive, for example, when loading the web module deployment descriptor, "web.xml" from a web module archive (WAR file) that is stored within enterprise application archive (EAR file), as long as the nested web module archive is left inside the enterprise application archive, accessing web module deployment descriptor requires first that the nested web module archive be accessed, then, second, that the entries of the nested web module archive be scanned and decompressed until the target web module deployment descriptor is reached. When the number of entries which are accessed is small, or when the overall web module archive is small, the cost of the extra scan and decompression is relatively low, and is not a problem. When the number of entries which are accessed is more than a few, or when the web module archive has more than a few tens of kilobytes (KB) of data, the cost of the access can grow to be large. When the number of entries which are accessed is large, or when the web module archive is very large, the cost of the access can grow to be quite excessive. (Application deployment times in excess of an hour have been seen.) This update causes the creation of new temporary files. To disable creation of the new temporary files, use the following custom JVM property setting: com.ibm.config.eclipse.wtp.dynamic.expansion=false ************************************************************** All the previous APAR text describes the problem corrected by PK94209. However, the interim fix for PK94209 had a packaging problem which would cause the installation of subsequent interim fixes to fail. This APAR, PK99815, supercedes PK94209 and repackages that interim fix only. There is no additional code change made with this APAR. ************************************************************** *** Note that there is no problem with PK94209 as shipped in any fix pack. The fix for PK94209 is currently targeted for inclusion in fix pack 7.0.0.7. Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980 Directions to apply fix: Fix applies to Editions: Release 7.0 X_ Application Server (Express or BASE) X_ Network Deployment (ND) __ Edge Components __ Developer Install Fix to all WebSphere installations unless special instructions are included below. Special Instructions: None NOTE: The user must: * Logged in with the same authority level when unpacking a fix, fix pack or refresh pack. * Be at V7.0.0.0 or newer of the Update Installer. Certain iFixes may require a newer version of the Update Installer and the Update Installer will inform you during the installation process if a newer version is required. This can be checked by reviewing the level of the Update Installer in file /updateinstaller/version.txt. The Update Installer can be downloaded from the following link: http://www.ibm.com/support/docview.wss?rs=180&uid=swg21205991 1) If your iFix is delivered as a single file with a .pak extension, Copy the .pak file directly to the maintenance directory. If your iFix is delivered as a single file with a .zip extension, unzip the file into the maintenance directory. 2) Shutdown WebSphere Manually execute setupCmdLine.bat in Windows or . ./setupCmdLine.sh in Unix from the WebSphere instance that maintenance is being applied to. 3) For IBM i users, use the update command to install and uninstall the interim fix. The IBM Information Center can provide additional details, if needed, on the use of this command. http://www14.software.ibm.com/webapp/wsbroker/redirect?version=compass&product=was-nd-iseries&topic=rins_update. For non-IBM i users, launch the Update Installer and click the Next button on the Welcome page. 4) Enter the directory path of the installation location of the WebSphere product you want to update, and click the Next button. 5) Select the "Install maintenance package" operation and click the Next button. 6) Enter the directory path of your maintenance directory where you have the maintenance packages (.pak files) and click the Next button. 7) The Available Maintenance Package to Install page should list all maintenance packages (.pak files) that it finds in the directory path provided in the previous step. The Update Installer will select the correct maintenance packages based on your system configuration and will not allow an invalid combination to be installed. Please keep the Update Installer recommendations and click the Next button and continue with the installation of the maintenance package. To determine why some maintenance packages have been identified as not applicable, see description in log found in /logs/tmp*/updatelogs.txt 8) For all platforms except Windows. In pre-install summary panel, use the "verify permission" feature to verify the user has permissions to apply updates to files associated with the selected maintenance. Correct any file permissions before clicking next to start the install. 9) Restart WebSphere Directions to remove fix: NOTE: * The user must have Administrative rights in Windows, or be the Actual Root User in a UNIX environments. * FIXES MUST BE REMOVED IN THE ORDER THEY WERE APPLIED * DO NOT REMOVE A FIX UNLESS ALL FIXES APPLIED AFTER IT HAVE FIRST BEEN REMOVED * YOU MAY REAPPLY ANY REMOVED FIX Example: If your system has fix1, fix2, and fix3 applied in that order and fix2 is to be removed, fix3 must be removed first, fix2 removed, and fix3 re-applied. 1) Shutdown WebSphere Manually execute setupCmdLine.bat in Windows or . ./setupCmdLine.sh in Unix from the WebSphere instance that uninstall is being run against. 2) Start Update Installer 3) Enter the installation location of the WebSphere product you want to remove the fix. 4) Select "Uninstall maintenance package" operation. 5) Enter the file name of the maintenance package to uninstall (PKxxxxx.pak). 6) UnInstall maintenance package. 7) Restart WebSphere Directions to re-apply fix: 1) Shutdown WebSphere. 2) Follow the Fix instructions to apply the fix. 3) Restart WebSphere. Additional Information: