eFix (APAR): PQ63130 Status: efix For Release: WebSphere 4.0.2, 4.0.3, and 4.0.4 For Edition: WebSphere AE, AEs For ContainerTypes: AEServer, AEsServer, J2EE client, Thin client For Operating System: NT, Windows 2000, AIX, HP, Solaris, Linux Supercedes eFixes: PQ60648, PQ58584, PQ58498, PQ60468 Preqesuite eFix: PQ60281, or superceding connection manager eFix including support for defect PQ57073.2. This eFix will work without this support, but is required for those customers using S/390 DB2 as a database on the platforms listed above. The eFix is suggested for other parties as it contains other connection manager eFixes. CMVC defect: PQ60468 Byte size of APAR: 1,239,300 Date: 07/24/2002 Brief Description: This is a cumulative eFix and should be applied to 4.0.2, 4.0.3, or 4.0.4 levels of WebSphere only. Description/symptom of problem: This is a cumulative EJB Container eFix, correcting the following problems: 1) If a CMP bean a, has a method b, and a.b() contains a call to bean b, method b, e.g. b.b(), and b.b() received an unchecked or system exception, bean b is discarded correctly, but bean a is not. Consequently, bean a is placed back into the reuse pool, but is the destroyed state, and useable. If tracing has been enabled, the following will appear in the log: InvalidBeanOStateException(current = DESTROYED, expected = POOLED) Abstract: EJB Container cumulative eFix and workaround for problem with reflection api 2) If method-level attributes are specified in the bean's deployment descriptor for transactions, isolation level, or read-only, and the attribute is specified to apply to a specific method with a specific signature, and one or more of the arguments in the signature is an array type, the container does not correctly apply the attribute to the corresponding method on the EJB. 3) On some platforms, a problem has been found where a call to the reflection api getField(name) results in a NoSuchFieldException even though the field does exist. This may be an intermittent problem which will be seen when installing an application with an Entity Bean with Container Managed Persistence fields. This efix provides a workaround for this problem, by merely attempting the call a second time. This is a temporary fix until a permanent solution can be obtained for the jdk. 4) Overloaded EJBObject methods, such as remove, did not get the correct Transaction Attributes applied. This has been fixed. Directions to apply efix: 1) This eFix requires connection manager eFix for containing support for defect PQ57073.2. This APAR has tested with APAR PQ60281. The instructions to apply that APAR are included in that APAR's readme. It is possible that a newer version of the connection manager cumulative e-fix exists. 2) Create temporary "eFix" directory to store this APAR's zip/tar file: AIX: /tmp/WebSphere/eFix Solaris/Linux: /tmp/WebSphere/eFix Windows: c:\temp\WebSphere\eFix 3) Copy the jar/zip/tar file to the directory 4) If a zip file, unzip in that directory. If a tar file, untar the file. 5) Shutdown WebSphere 6) Run the jar file with the following command answering questions/prompts as they appear: java -jar -TargetDir (Alternatively, you can skip the -TargetDir option, and the eFix will prompt for the value) 7) Restart WebSphere 8) 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/ 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/). 2) Shutdown WebSphere 3) Run the backup jar file with the following command: java -jar 4) Restart WebSphere 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. Trouble shooting -------------------------------------------------------------------------------------- o If an efix complains about the container type and you are sure it should match, contact WebSphere L2 Support for assistance with the -SkipContainerCheck option to the efix jar. o For service personnel, if the container trace is enabled, this defect's presence can be verified. The EJB Container initialize and preinvoke methods will display "PQ63130" text in the trace statements. If this text is not presented, the eFix should be reapplied. Additional Information: ------------------------------------------------------------------