Fix (APAR): WAS_EJBContainer_03-02-2004_4.0.7-4.0.6-4.0.5-4.0.4-4.0.3-4.0.2_cumulative_Fix Status: Fix Release: 4.0.7,4.0.6,4.0.5,4.0.4,4.0.3,4.0.2 Operating System: All Supersedes Fixes: WAS_EJBContainer_10-24-2003_4.0.x_cumulative_Fix WAS_EJBContainer_04-29-2003_4.0.x_cumulative_Fix, WAS_EJBContainer_04-03-2003_4.0.x_cumulative_Fix, WAS_EJBContainer_03-13-2003_4.0.x_cumulative_eFix, WAS_EJBContainer_11-27-2002_4.0.x_cumulative_eFix, WAS_EJBContainer_11-01-2002_4.0.x_cumulative_eFix,PQ65395, PQ58584, PQ58498, PQ60468 CMVC Defect: PQ84963 Byte size of APAR: 1347657 Date: 2004-03-02 Abstract: WebSphere 4.02 and above EJBContainer 03-02-2004 Cumulative Fix Set Description/symptom of problem: Customer problems addressed: - BeanOActivationFailureException occurs after migration from 4.0.3 (PQ84963) - Custom Finder enhancements supporting dynamic SQL "FOR UPDATE" enhancements (PQ74423) - LRUCache object discarded without executing castout policy, memory leak (PQ72451) - No exception return to client when transaction times out (PQ71200) - Bean remove corrupts DB primary key field for tables using foreign key (PQ68515) - Better logging and performance for stateless session beans (PMR 56147,487) - Create copy of the primary key object when NoLocalCopies used (PQ62081) - Correctly support persistence operations when PQ57073 (CM DB2 390 support not applied) (PQ60468) - Synchronize entity bean to database prior to ejbFind (PMR 07668, 419, 000) - Pass-by-value class enhancements for WebSphere 390 interopability (PQ57731) - Bean not reentrant exception occurs with transaction in ejbcreate() method call (PQ56091) - Diagnostic/service tracing enhancements (General) General problems corrected prior to customer report: 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) 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 fix 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. 5) Allows ejb access from beforeCompletion on SessionSynch enabled Session Beans, and from ejbStore on EntityBeans. Directions to apply fix: 1) This fix requires connection manager fix 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/fix Solaris/Linux: /tmp/WebSphere/fix Windows: c:\temp\WebSphere\fix 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 fix 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/Fix/ directories. These files are required if an fix is to 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) Change directory to the fix location (/WebSphere/AppServer/Fix/). 2) Shutdown WebSphere 3) Run the backup jar file with the following command: java -jar 4) Restart WebSphere Directions to re-apply fix: Follow the instructions for applying an fix. If the backup files still exist (from the previous fix application), you will be prompted to overwrite. Answer "yes" at the overwrite prompts. Trouble shooting -------------------------------------------------------------------------------------- o If a fix complains about the container type and you are sure it should match, contact WebSphere L2 Support for assistance with the -SkipContainerCheck option to the fix 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 print "EJBCntr MM-DD-YYYY Cumfix Invoking method" during each preinvoke method invocation the trace output. If this text is not present, the eFix should be reapplied. Additional Information: ------------------------------------------------------------------