BPM/SOA Notes

person Bijeshfolder_openOtheraccess_time June 13, 2014

With our SOA server, we constantly ran into issues where the server was looking for composite versions that were already undeployed. This manifests in the BPM Workspace – When a user attempts to create a new view or modify an existing view, the application throws an uncaught exception. Looking at the logs, I saw that the application had references to old versions of some composites which were undeployed and did not list in em.

There were a few different scenarios when this occurred

1) The non-existent versions of composites were still referenced in the deployed-composites/deployed-composites.xml file in the MDS. The solution in this case was to export the MDS using EM, altering the xml file to remove the references and importing back the modified MDS files.

2) In another scenario, this issue occurred even though the XML file was clean. The stack trace looked something like this

at oracle.bpel.services.workflow.fabric.WorkflowServiceEngine.getComponentModel(WorkflowServiceEngine.java:2806)
at oracle.bpel.services.workflow.fabric.WorkflowServiceEngine.getTaskDefinition(WorkflowServiceEngine.java:2421)
at oracle.bpel.services.workflow.metadata.impl.TaskMetadataCache.getTaskDefinition(TaskMetadataCache.java:355)
at oracle.bpel.services.workflow.metadata.impl.TaskMetadataCache.getWorkflowConfiguration(TaskMetadataCache.java:619)
at oracle.bpel.services.workflow.metadata.impl.TaskMetadataService.populateOutcomes(TaskMetadataService.java:2069)
at oracle.bpel.services.workflow.metadata.impl.TaskMetadataService.populateTaskMetadataDerivedValues(TaskMetadataService.java:2043)
at oracle.bpel.services.workflow.metadata.impl.TaskMetadataService.listTaskMetadata(TaskMetadataService.java:436)
at sun.reflect.GeneratedMethodAccessor19307.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at oracle.bpel.services.workflow.common.WorkflowServiceCacheEventAdvice.invoke(WorkflowServiceCacheEventAdvice.java:91)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at oracle.bpel.services.workflow.test.workflow.ExceptionTestCaseBuilder.invoke(ExceptionTestCaseBuilder.java:155)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy280.listTaskMetadata(Unknown Source)

Naturally, I went digging into the code (hat tip to JD-GUI!) and discovered that there were orphan references in the WFTASKMETADATA table. Deleting the unnecessary rows from this table followed by a restart of the server resolved the issue for us.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>