Fix (APAR): JR26076 Status: Fix Release: 6.0.2.1,6.0.2 Operating System: AIX,HP-UX,Linux,Solaris,Windows Supersedes Fixes: CMVC Defect: xxxxxx Byte size of APAR: 9536 Date: 2007-04-06 Abstract: When a BO is created in an SCA application, its type is cached for future use. This caching was incorrect causing errors. Description/symptom of problem: JR26076 resolves the following problem: ERROR DESCRIPTION: Due to a performance enhancement, business object types are now being cached within each application. When a create request is received, the runtime framework first checks if the type is already cached. If it is, then it retrieves the type from the cache and creates a new DataObject using this cached type. This functionality had an error in that, some non-DataOject types were also getting cached and this would result in a runtime exception at the time of DataObject creation. The exception stack looks as follows: [2/19/07 16:50:06:453 PST] 0000005f SystemErr R java.lang.IllegalArgumentException: Illegal Value, type does not refer to a DataObject at com.ibm.websphere.bo.impl.BOFactoryImpl.createByType(BOFactoryIm pl.java:268) at com.ibm.websphere.bo.impl.BOFactoryImpl.create(BOFactoryImpl.jav a:207) at com.ibm.frk.gps2.mediation.SOAPHeadersHelper.setHeaders(SOAPHead ersHelper.java:162) at com.ibm.frk.gps2.mediation.TestDirectLiquidationHelper.mediate_s tart_2_sendMessage(TestDirectLiquidationHelper.java:33) at sca.component.mediation.java.snippet.CustomSnippet1653658433$Jav aSnippet.execute(CustomSnippet1653658433.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor Impl.java(Compiled Code)) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor Impl.java(Compiled Code)) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod AccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.ibm.ws.sibx.scax.mediation.engine.JavaSnippetCustomMediation .invokeJavaSnippet(JavaSnippetCustomMediation.java:173) at com.ibm.ws.sibx.scax.mediation.engine.JavaSnippetCustomMediation .invokeCustomMediation(JavaSnippetCustomMediation.java:123) at com.ibm.ws.sibx.scax.mediation.engine.CustomMediation.invoke(Cus tomMediation.java:170) at com.ibm.ws.sibx.scax.mediation.engine.MediationPrimitive.invokeC onnections(MediationPrimitive.java:279) at com.ibm.ws.sibx.scax.mediation.engine.Input.invoke(Input.java:12 9) at com.ibm.ws.sibx.scax.mediation.engine.RequestFlow.invokeFlow(Req uestFlow.java:123) at com.ibm.ws.sibx.scax.mediation.engine.MediationFlow.invokeReques tFlow(MediationFlow.java:113) at com.ibm.wsspi.sibx.mediation.flow.ejb.MediationFlowBean.invokeRe questFlow(MediationFlowBean.java:210) at com.ibm.wsspi.sibx.mediation.flow.ejb.EJSLocalStatelessMediation Flow_f5ad87fe.invokeRequestFlow(EJSLocalStatelessMediationFlow_f 5ad87fe.java:79) at com.ibm.ws.sibx.scax.mediation.component.ejb.EJBMediationFlowCom ponentImpl.invokeRequestFlow(EJBMediationFlowComponentImpl.java: 201) at com.ibm.ws.sibx.scax.runtime.handler.MFCImplementationHandler.pr ocessMessage(MFCImplementationHandler.java:180) at com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.proce ssMessageWithPCI(MessageDispatcherImpl.java:700) at com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.proce ssMessage(MessageDispatcherImpl.java:1148) at com.ibm.ws.sca.internal.message.impl.ManagedMessageImpl.process( ManagedMessageImpl.java:586) at com.ibm.wsspi.sca.ejb.module.impl.ModuleSessionBean.processUOWMe ssage(ModuleSessionBean.java:336) at com.ibm.wsspi.sca.ejb.module.impl.ModuleSessionBean.transactionN otSupportedActivitySessionNotSupported(ModuleSessionBean.java:28 5) at com.ibm.wsspi.sca.ejb.module.EJSLocalStatelessModule_43132892.tr ansactionNotSupportedActivitySessionNotSupported(EJSLocalStatele ssModule_43132892.java:131) at com.ibm.ws.sca.internal.uow.handler.UOWStrategyImpl.transactionL ocalActivitySessionFalse(UOWStrategyImpl.java:381) at com.ibm.ws.sca.internal.uow.handler.JoinUOWHandler.processMessag e(JoinUOWHandler.java:126) at com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.proce ssMessageWithPCI(MessageDispatcherImpl.java:711) at com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.proce ssMessage(MessageDispatcherImpl.java:1148) at com.ibm.ws.sca.internal.message.impl.ManagedMessageImpl.process( ManagedMessageImpl.java:577) at com.ibm.wsspi.sca.ejb.module.impl.ModuleSessionBean.processMessa ge(ModuleSessionBean.java:148) at com.ibm.wsspi.sca.ejb.module.EJSLocalStatelessModule_43132892.pr ocessMessage(EJSLocalStatelessModule_43132892.java:97) at com.ibm.wbit.comptest.controller.invocation.impl.Invoker.managed Run(Invoker.java:186) at com.ibm.wbit.comptest.controller.invocation.impl.Invoker.run(Inv oker.java:88) at com.ibm.wbit.comptest.controller.invocation.impl.BaseInvocationH andler.invoke(BaseInvocationHandler.java:50) at com.ibm.wbit.comptest.controller.invocation.impl.InvocationManag er.doInvoke(InvocationManager.java:76) at com.ibm.wbit.comptest.controller.invocation.impl.InvocationManag er.invoke(InvocationManager.java:56) at com.ibm.wbit.comptest.controller.command.impl.BaseCommandHandler .doCommand(BaseCommandHandler.java:58) at com.ibm.wbit.comptest.controller.command.impl.CommandProcessor.d oCommand(CommandProcessor.java:76) at com.ibm.wbit.comptest.controller.command.impl.CommandProcessor.d oCommand(CommandProcessor.java:43) LOCAL FIX: N/A PROBLEM SUMMARY USERS AFFECTED: WebSphere Process Server users. PROBLEM DESCRIPTION: When a BO is created in an SCA application, its type is cached for future use. This caching was incorrect causing errors. RECOMMENDATION: None When an SCA application creates a BO for the first time in the lifetime of that application, it resolves the schema type from the XSD. For subsequent use, the EMF type is cached in the application. However, since non-DataObject types were also being saved to the cache, it created problems when the next attempt to create the BO happened. The incorrect type would be fetched from the cache resulting in an IllegalArgumentException. Here is the stack trace: java.lang.IllegalArgumentException: Illegal Value, type does not refer to a DataObject at com.ibm.websphere.bo.impl.BOFactoryImpl.createByType (BOFactoryImpl.java:268) at com.ibm.websphere.bo.impl.BOFactoryImpl.create (BOFactoryImpl.java:207) at com.ibm.frk.gps2.mediation.SOAPHeadersHelper.setHeaders (SOAPHeadersHelper.java:162) at com.ibm.frk.gps2.mediation.TestDirectLiquidationHelper. mediate_start_2_sendMessage(TestDirectLiquidationHelper.java:33) at sca.component.mediation.java.snippet. CustomSnippet1653658433$JavaSnippet.execute (CustomSnippet1653658433.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java(Compiled Code)) PROBLEM CONCLUSION: This ifix verifies that the type being caches is the correct type or otherwise disregards the attempt to cache a non-DataObject type. Directions to apply fix: Before applying the iFix ensure that WebSphere Process Server 6.0.2.0 or 6.0.2.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: