eFix (APAR): pq51806 Status: efix For Release: WebSphere 3.5.4 For Operating System: OS independent Supersedes eFixes: None known CMVC defect: PQ51806 Byte size of APAR: 20k Date: 8/29/01 Abstract: IllegalStateException's during commit processing after a DuplicateKeyException Description/symptom of problem: An error condition in the container is triggered where upon after encountering an EJB createFailure (in this case a DuplicateKeyException) the container removes the wrong Bean instance from the EJBcache (so happens to be the same beanId). Subsequently the instance which was removed fails commit processing because the instance enlisted in the transaction does not match up with the instance in the EJBcache. The following exception is found in the AppServer trace log java.lang.IllegalStateException at java.lang.RuntimeException.(RuntimeException.java:39) at java.lang.IllegalStateException.(IllegalStateException.java:36) at com.ibm.ejs.container.EntityBeanO.passivate(EntityBeanO.java(Compiled Code)) at com.ibm.ejs.container.activator.IndependentActivationStrategy.atCommit(IndependentActivationStrategy.java(Compiled Code)) at com.ibm.ejs.container.activator.Activator.commitBean(Activator.java(Compiled Code)) at com.ibm.ejs.container.ContainerTx.afterCompletion(ContainerTx.java:368) at com.ibm.ejs.util.tran.SyncDriver.after_completion(SyncDriver.java(Compiled Code)) at com.ibm.ejs.jts.jts.CoordinatorImpl$Sync.afterResolution(CoordinatorImpl.java:642) at com.ibm.ejs.jts.tran.EventCallback.executeCallback(EventCallback.java:178) at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:132) at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:123) at com.ibm.ejs.jts.tran.EventCommit.event_AfterResolutionWork(EventCommit.java:175) at com.ibm.ejs.jts.tran.EventCommit.event_LoggedLocalCommit(EventCommit.java:148) at com.ibm.ejs.jts.tran.EventCommit.event_DeliverLocalCommit(EventCommit.java:134) at com.ibm.ejs.jts.tran.EventPrepare.PrepareCompleted(EventPrepare.java:796) at com.ibm.ejs.jts.tran.EventPrepare.DonePrepareCallbacks(EventPrepare.java:324) at com.ibm.ejs.jts.tran.EventPrepare.event_LocalPrepareWork(EventPrepare.java:275) at com.ibm.ejs.jts.tran.EventPrepare.event_BecomeCoordinator(EventPrepare.java(Compiled Code)) at com.ibm.ejs.jts.tran.EventControl.event_EndTopLevel(EventControl.java(Compiled Code)) at com.ibm.ejs.jts.tran.TrecInterface.end(TrecInterface.java:88) at com.ibm.ejs.jts.jts.TerminatorImpl.commit(TerminatorImpl.java:89) at com.ibm.ejs.jts.jts.CurrentImpl.commit(CurrentImpl.java:192) at com.ibm.ejs.jts.jts.CurrentSet.commit(CurrentSet.java:230) at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:181) at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java(Compiled Code)) at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java(Compiled Code)) . . . The client application transaction is marked for rollback. Directions to apply efix: 1) Create "efix" directory to store the efix jar file(s): AIX: /usr/WebSphere/AppServer/efix Solaris/Linux: /opt/WebSphere/AppServer/efix Windows: c:\WebSphere\AppServer\efix 2) Copy PQ51806.jar to the directory 3) Add the directory/jar file to the beginning of the admin server's classpath in admin.config: com.ibm.ejs.sm.adminserver.classpath=C:/WebSphere/AppServer/efix/PQ51806.jar... 4) Stop and restart the Admin Server ***any processes that must be restarted*** Additional Information: ------------------------------------------------------------------