Fix (APAR): JR26291 Status: Fix Release: 6.0.2.1 Operating System: AIX,HP-UX,Linux,Solaris,Windows Supersedes Fixes: CMVC Defect: xxxxxx Byte size of APAR: 56997 Date: 2007-06-04 Abstract: If there are many of the same prefix names for xml namespace in xml, it causes WPS bad performance. Description/symptom of problem: JR26291 resolves the following problem: ERROR DESCRIPTION: Parsing or deserialization of certain large business objects in WebSphere Process Server take a long time to complete. For example, an extremely large 60MB SOAP message sent to Process Server takes approximately 1.5hrs before the dataobject. This behavior may also be seen in other services such as when input is being deserialized by the BOXMLSerializer service. During this time the CPU is fully utilized by Process Server, and high memory use may also be observed. However, the task eventually completes successfully and with no error except for performance. The root cause of the performance problem is when there are many redundant default namespace definitions in the input. An example of such a default namespace definition is xmlns="http://foo.com" In the sample input file, it is observed that there are on the order of tens of thousands of these redundant definitions which leads to the performance problem. The underlying algorithm that causes the performance problem is from the EMF Open Source package. As a result, changes to this code can only be made in accordance with the Open Source license. These changes have been submitted, however Process Server will not be able to include the updated EMF version until a distant future version. However, an alternate solution has been developed, where Process Server can avoid the problematic code, and resolve the performance problem. This will be released as an interim fix for Process Server. In the example discussed in this APAR, it has been observed that this change reduces the processing time of the scenario from 70 minutes to under 1 minute. LOCAL FIX: A local fix is to: Remove redundant default namespace declarations from the input message or use explicit or distinct prefix names. PROBLEM SUMMARY USERS AFFECTED: WebSphere Process Server 6.0.2.0/1 users PROBLEM DESCRIPTION: If there are many of the same prefix names for xml namespace in xml, it causes WPS bad performance. RECOMMENDATION: None WPS will de-serialize xml resource to DataObject. If there are same prefix names for xml namespace in xml resource, WPS seaches the exising prefix with linear search algorithm during de-serializing. So it has bad performance. With the fix, WPS uses a binary search algorithm. PROBLEM CONCLUSION: The fix improves WPS performance for many same prefix names in x ml. The fix doesnot cover other scenarios. Directions to apply fix: Before applying the iFix ensure that WebSphere Process Server 6.0.1 is installed on the system. Also download and follow Update Installer installation instructions. The Update Installer can be downloaded from the following link: http://www.ibm.com/support/docview.wss?rs=180&uid=swg21205991 1) Copy the pak file to the directory maintenance in the UpdateInstaller directory 2) Shutdown WebSphere Process Server. It is important that you perform a controlled and complete shutdown of the server to ensure that all transactions have completed, before installing the fix. 3) Run the UpdateInstaller and follow the prompts. 4) Restart WebSphere Directions to remove fix: NOTE: FIXES MUST BE REMOVED IN THE REVERSE ORDER IN WHICH 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, then fix2 may be removed 1) Shutdown WebSphere. It is important that you perform a controlled and complete shutdown of the server to ensure that all transactions have completed, before installing the fix. 2) Follow the Fix instructions that are packaged with the Fix Installer on how to uninstall and reinstall the Fix. 3) Restart WebSphere Directions to re-apply fix: 1) Shutdown WebSphere. It is important that you perform a controlled and complete shutdown of the server to ensure that all transactions have completed, before installing the fix. 2) Run the UpdateInstaller and follow the instructions. The Update Installer can be downloaded from the following link: http://www.ibm.com/support/docview.wss?rs=180&uid=swg21205991 3) Restart WebSphere Process Server Additional Information: