Direct links to fixes
APAR status
Closed as program error.
Error description
After process instances are migrated to a new snapshot and the old snapshot is deleted, you see an error when you run the Processes dashboard in IBM Process Portal and you see an exception like the following example in the SystemOut.log file of the server: [3/10/17 16:39:50:121 CET] 0001fd84 wle E CWLLG2229E: An exception occurred in an EJB call. Error: UserGroup with ID UserGroup.3318 not found. com.lombardisoftware.core.TeamWorksException: UserGroup with ID UserGroup.3318 not found. at com.lombardisoftware.server.ejb.persistence.CommonDAO. assertNotNull(CommonDAO.java:65) at com.lombardisoftware.server.ejb.persistence.CommonDAO. assertMapNotNull(CommonDAO.java:45) at com.lombardisoftware.server.ejb.persistence.dao. UnversionedPODAO.findByPrimaryKey(UnversionedPODAO.java:513) at com.lombardisoftware.server.ejb.persistence.DefaultHandler. findByPrimaryKey(DefaultHandler.java:119) at com.lombardisoftware.server.ejb.persistence. PersistenceServicesCore$3.call (PersistenceServicesCore.java:189) at com.lombardisoftware.server.ejb.persistence. PersistenceServicesCore$3.call (PersistenceServicesCore.java:187) at com.lombardisoftware.server.ejb.persistence.versioning. BranchManager.readAccess(BranchManager.java:173) at com.lombardisoftware.server.ejb.persistence. PersistenceServicesCore.findByPrimaryKey (PersistenceServicesCore.java:187) at sun.reflect.GeneratedMethodAccessor278.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.springframework.aop.support.AopUtils. invokeJoinpointUsingReflection(AopUtils.java:310) at org.springframework.aop.framework. ReflectiveMethodInvocation.invokeJoinpoint (ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework. ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:149) at com.lombardisoftware.utility.spring. TransactionInterceptor$2.call(TransactionInterceptor.java:67) at com.lombardisoftware.utility.spring. ProgrammaticTransactionSupport.executeWithNoTransaction (ProgrammaticTransactionSupport.java:633) at com.lombardisoftware.utility.spring. ProgrammaticTransactionSupport.execute (ProgrammaticTransactionSupport.java:334) at com.lombardisoftware.utility.spring.TransactionInterceptor. invoke(TransactionInterceptor.java:65) at org.springframework.aop.framework. ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:171) at com.lombardisoftware.utility.spring.CoreEntryInterceptor. invoke(CoreEntryInterceptor.java:44) at com.lombardisoftware.utility.spring.PSCoreEntryInterceptor. invoke(PSCoreEntryInterceptor.java:14) at org.springframework.aop.framework. ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy. invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy57.findByPrimaryKey(Unknown Source) at com.lombardisoftware.server.ejb.persistence. PersistenceServicesBean$5.execute (PersistenceServicesBean.java:110) at com.lombardisoftware.server.ejb.persistence. PersistenceServicesBean$5.execute (PersistenceServicesBean.java:108) at com.lombardisoftware.server.ejb.EjbServerUtils. handleEjbCall(EjbServerUtils.java:86) at com.lombardisoftware.server.ejb.persistence. PersistenceServicesBean.handleEjbCall (PersistenceServicesBean.java:50) at com.lombardisoftware.server.ejb.persistence. PersistenceServicesBean.findByPrimaryKey (PersistenceServicesBean.java:108) at com.lombardisoftware.server.ejb.persistence. EJSRemoteStatelessPersistenceServices_ccd74654. findByPrimaryKey(Unknown Source) at com.lombardisoftware.server.ejb.persistence. _PersistenceServices_Stub.findByPrimaryKey (_PersistenceServices_Stub.java:492) at com.lombardisoftware.client.delegate. PersistenceServicesDelegateDefault$5.run (PersistenceServicesDelegateDefault.java:330) at java.security.AccessController.doPrivileged (AccessController.java:327) at com.lombardisoftware.client.delegate.common. WebsphereDelegateHelper.doAsCurrentSubjectContextSensitive (WebsphereDelegateHelper.java:197) at com.lombardisoftware.client.delegate. PersistenceServicesDelegateDefault.findByPrimaryKey (PersistenceServicesDelegateDefault.java:316) at com.lombardisoftware.client.persistence.common. factorydelegate.UnversionedFactoryDelegate.findByPrimaryKey (UnversionedFactoryDelegate.java:40) at com.lombardisoftware.client.persistence.common. AbstractUnversionedPOFactory.findByPrimaryKey (AbstractUnversionedPOFactory.java:122) at com.ibm.bpm.dashboards.data.InstanceListItemHelper. getOwningTeamUserGroup(InstanceListItemHelper.java:182) at com.ibm.bpm.dashboards.data.InstanceListItemHelper. getInstanceListItemDetails(InstanceListItemHelper.java:164) at com.ibm.bpm.dashboards.data.InstanceListItemHelper. toTWObject(InstanceListItemHelper.java:150) at com.ibm.bpm.dashboards.data.InstanceListItemHelper. toTWObject(InstanceListItemHelper.java:127) at com.ibm.bpm.dashboards.data.InstanceListItemHelper. toTWObject(InstanceListItemHelper.java:102) at com.ibm.bpm.dashboards.data.InstanceListItemHelper. retrieveInstanceList(InstanceListItemHelper.java:92) at com.lombardisoftware.core.script.js. AbstractTWSystemScriptable.jsFunction_retrieveInstanceList (AbstractTWSystemScriptable.java:2164) The error can also happen when you run the tw.system.retrieveInstanceList() JavaScript API in one of your business process definitions (BPDs) or services (IBM BPM V8.5.5) or processes or service flows (IBM BPM V8.5.7).
Local fix
Problem summary
To retrieve the current list of process instances, the Processes dashboard in Process Portal runs the "Default Process Instance List Service" Ajax service, which runs the tw.system.retrieveInstanceList() JavaScript API. The API fails to build the result because at least one item in the result list refers to an owner group that does not exist anymore. This owner group was deleted when an older snapshot was deleted. The instances were previously started in this snapshot and migrated to a newer snapshot. During this instance migration, the owner group was not updated to point to the group for the new snapshot. PRODUCTS AFFECTED IBM Business Process Manager (BPM) Advanced IBM BPM Standard IBM BPM Express
Problem conclusion
A fix is available for IBM BPM V8.5.5 that will be included in IBM BPM V8.5.7 cumulative fix 2017.06 that extends the process instance migration to update the owner group to the group related to the target snapshot. The fix also adds a check before deleting a snapshot to prevent the deletion when instances in other snapshots use a owner group in the snapshot that is to be deleted. To fix existing instances that point to an owner group that does not exist anymore, perform one of the following actions: - Migrate the instance to a new snapshot. This can be a snapshot without any model changes. The instance migration will update the group information of the instance to point to groups in the new snapshot. - Run the following SQL statement: SELECT I.BPD_INSTANCE_ID, PG.GROUP_ID AS NEW_OWNER_GROUP_ID FROM LSW_BPD_INSTANCE I JOIN LSW_BPD BPD ON I.CACHED_BPD_VERSION_ID=BPD.VERSION_ID JOIN LSW_PO_REFERENCE POR ON BPD.OWNER_TEAM_PARTICIPANT_REF=POR.REFERENCE_ID JOIN LSW_PARTICIPANT_GROUP PG ON I.SNAPSHOT_ID=PG.SNAPSHOT_ID AND POR.TARGET_ID= PG.PARTICIPANT_ID WHERE I.TIP='F' AND I.OWNER_GROUP_ID IS NOT NULL AND I.OWNER_GROUP_ID NOT IN ( SELECT GROUP_ID FROM LSW_USR_GRP_XREF ) The result will contain the BPD_INSTANCE_ID and the NEW_OWNER_GROUP_ID in the correct snapshot. Use this information to update the OWNER_GROUP_ID in the LSW_BPD_INSTANCE table. For each BPD or process instance that you update, you must update the search index by using the processIndexUpdateInstance script: processIndexUpdateInstance.bat -user DeAdmin_user -password DeAdmin_user -host host_name -port SOAP_port BPD_INSTANCE_ID For more information, see "Updating the Process Portal index" (https://www.ibm.com/support/knowledgecenter/SSFTN5_8.5.5/com.ib m.wbpm.admin.doc/topics/cadm_task_index_updating.html).
Temporary fix
Comments
APAR Information
APAR number
JR57611
Reported component name
BPM ADVANCED
Reported component ID
5725C9400
Reported release
855
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-03-17
Closed date
2017-05-18
Last modified date
2017-05-18
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
BPM STANDARD
Fixed component ID
5725C9500
Applicable component levels
R855 PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSFTDH","label":"IBM Business Process Manager Standard"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"855","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
18 May 2017