Fix (APAR): PQ73371 Status: Fix Release: 5.0.1 Operating System: All Supersedes Fixes: CMVC Defect: PQ73371 Byte size of APAR: 8269 Date: 2003-05-09 Abstract: Serialization of Internationalization Context fails in V5 when interoperating over releases 5.0.0 and 5.0.1 Description/symptom of problem: Description/symptom of problems: This interim fix addresses Internationalization service interoperability issues between WebSphere Application Server, Version 5 and Version 5.0.1. The WebSphere Application Server Enterprise, Version 5 internationalization service has an interoperability problem that affects how dependent services and customer applications behave when deserializing internationalization context across interoperating WebSphere Application Server, Version 5 and Version 5.0.1 products. Internationalization context created by the Internationalization service causes an InvalidClassException when deserialized within the WebSphere Application Server runtime environment. This is true whenever: --Internationalization context created by Version 5 and deserialized within the V5.0.1 runtime environment. --Internationalization context is created by Version 5.0.1 and deserialized within the V5 runtime environment. Because internationalization service documentation does not instruct customers towards the manual serialization or deserialization of internationalization context, you should rarely, if ever, directly encounter this problem within your applications. However, it can manifest indirectly when interoperating between Version 5 and Version 5.0.1 releases of WebSphere Application Server Enterprise services that process Java 2 Platform, Enterprise Edition (J2EE) contextual information. The following services are affected by interim fix PQ73371: Internationalization Asynchronous beans Scheduler Process choreography To categorically avoid this problem, install the interim fix PQ73371 in all Version 5.0.1 server environments. The following section describes the specific problematic behaviors. Problem description: internationalization --------------------------------------------------- When attempting to deserialize internationalization context imported on an incoming EJB (RMI/IIOP) method request between interoperating Version 5 and Version 5.0.1 releases of WebSphere Application Server Enterprise, the internationalization service displays a message indicating an unexpected exception, "InvalidClassException," and then scopes the default locale and time zone of the local Java virtual machine (JVM) as the caller internationalization context of the EJB method. Because the internationalization application programming interface (API) provides methods to set invocation internationalization context, not caller internationalization context, this behavior is immutable. This problem appears whenever the following three conditions exist: 1. An EJB method request is invoked between interoperating Version 5 and Version 5.0.1 releases of WebSphere Application Server Enterprise. 2. The internationalization service is enabled in the invoking client or server environment. 3. The internationalization service is enabled in the target server environment. To avoid this problem, install the interim fix for PQ73371 to all Version 5.0.1 server environments. Problem description: asynchronous beans ------------------------------------------------------ Asynchronous beans allow taking snapshots of Java 2 Platform, Enterprise Edition (J2EE) contextual information from the current servlet or EJB method. Such a snapshot is taken when using the WorkManager.create(Work r) method to obtain an instance of WorkWithExecutionContext -– a serializable object that can be stored for future use. An instance of WorkWithExecutionContext contains internationalization context whenever: 1. The WorkManager resource used to create the instance has the com.ibm.ws.i18n context policy attribute enabled, and 2. The internationalization service is enabled. Due to the internationalization service interoperability problem described above, deserializing WorkWithExecutionContext objects containing internationalization context created on the other version fails with an SerialDeserialException. This is true for: --Version 5 WorkWithExecutionContext objects containing Internationalization context are deserialized on V5.0.1. --Version 5.0.1 WorkWithExecutionContext objects containing Internationalization context are deserialized on V5. In the event that asynchronous beans serialization mechanisms process an inoperable internationalization context within a WorkWithExecutionContext, and that interim fix PQ72742 is installed in the server environment, asynchronous beans display a message in the service logs that indicates an unexpected exception occurred involving the internationalization service: ASYN9999E: Unexpected Exception Occurred: com.ibm.websphere.asynchbeans.SerialDeserialException: Exception while deserializing a saved service. Service=com.ibm.ws.i18n. … When an asynchronous beans WorkManager begins executing a WorkWithExecutionContext instance with an invalid or missing internationalization context, and the internationalization service is enabled, the asynchronous beans scopes the default locale and time zone of the host JVM to the Work rather than the current invocation internationalization context. To avoid this problem, install the interim fix for PQ73371 to all Version 5.0.1 server environments, and follow the directions prescribed in section PQ72742.RN. Problem description: process choreography ------------------------------------------------------- The process choreographer service employs the asynchronous beans serialization mechanisms when creating and executing interruptible flows. If a flow is unable to deserialize the internationalization context, and the internationalization service is enabled during execution, both compensating tasks and the flows themselves incorrectly use the default locale and time zone of the local JVM rather than the current invocation internationalization context. See “Problem description: asynchronous beans” for error messages and further details. To avoid this problem, install the interim fix for PQ73371 to all Version 5.0.1 server environments, and follow the directions prescribed in section PQ72742.RN. Directions to apply fix: NOTE: YOU MUST FIRST DOWNLOAD THE UPDATE INSTALLER TOOL IN ORDER TO INSTALL A FIX. The Fix Installer can be downloaded from the following link: http://www-3.ibm.com/software/webservers/appserv/support/index.html 1) Create temporary "fix" directory to store the jar file: UNIX: /tmp/WebSphere/fix Windows: c:\temp\WebSphere\fix 2) Copy jar file to the directory 3) Shutdown WebSphere 4) Follow the Fix installation instructions that are packaged with the Fix Installer on how to install the Fix. 5) Restart WebSphere 6) The temp directory may be removed. Directions to remove fix: NOTE: 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 2) Follow the instructions that are packaged with the Fix Installer on how to uninstall the Fix. 3) Restart WebSphere Directions to re-apply fix: 1) Shutdown WebSphere 2) Follow the Fix instructions that are packaged with the Fix Installer on how to uninstall and reinstall the Fix. 3) Restart WebSphere Additional Information: