There are Built-In services to delete and change the status of process instances will that be helpful to you?
Built-in Service Names: pub.prt.admin:changeProcessStatus / pub.prt.admin:deleteProcess
Seems strange to me.
Were you able to get the root cause of the issue like why and how the inconsistency is arising?
Can you let me know the table names in which the inconsistency is happening?
Apart from modifying the table either by stored procedure or by sql command i don’t see any other option.
May be someone here might be having some additional info on this.
the affected tables are WMPROCESS and WMPROCESSRECENT.
I assume some issues in audit logging mechanism as the root cause.
This means that certain entries were not persisted in the database but got lost between the LWQ Derby Database and the real database.
I believe the discrepancy is in WMPROCESSRECENT table?
If you cannot access DB directly then most feasible solution would be to sync the data between the tables by writing stored procedure.
Thanks for this explanation. I guess I could delete some process instances. The Service delivers return = success,
But the process instance still shows up in the monitoring screen.
documentation >>>>>>>>>>>>>>>>>>>>>>>>
The Process Audit database remains unaffected, and the
process instance will continue to appear in webMethods Monitor
How can I delete these instances in the Audit database?
I want to clean up some development examples.
which status do the process instances have?
Started and Suspended (bemongst others) are not considered during archiving/deletion.
If they have one of these status you can stop them via MWS Monitor UI.
After that they should be able to be deleted during archive service execution.
Remember to choose a meaningful value for “days to retain”.
Only instances which completed, failed or were stopped before this date are considered.
In my particular case I have some instances which cannot get stopped via UI due to the mentioned database inconsistency.
There is an error message in the IS server.log resp. error log.
I tried to delete such data from the Audit database
Administration / Business / Data Management / Archive Audit Date / – Data Types – select process and press Button
and get following error:
"An error was encountered when starting archiving for your input criteria. Please verify that you have setup your archive database and JDBC pool correctly.
Our Admin checked JDBC pool setup and cannot find a problem.
you will need a second database schema for the archiving driver tables.
Create the tables with DB Configurator for component archiv to this schema.
Add an addtional database pool for this schema and assign it to Archive function.
Restart the Archive function.
In the new database schema go to the table and execute the following sql script (example is for Oracle, but can be updated to any other database type):
update OPERATION_PARAMETER set PARAMETER_VALUE = '<IS-Schema>' where PARAMETER_CD = 'PROCESS_SCHEMA';
update OPERATION_PARAMETER set PARAMETER_VALUE = '<IS-Schema>' where PARAMETER_CD = 'ISCORE_SCHEMA';
create index wmservice_1ix on WMSERVICE (ROOTCONTEXTID) tablespace WEBMINDX parallel nologging;
create index wmprocess_1ix on WMPROCESS (ROOTCONTEXTID) tablespace WEBMINDX parallel nologging;
create index wmserviceactivitylog_1ix on WMSERVICEACTIVITYLOG (ROOTCONTEXTID) tablespace WEBMINDX parallel nologging;
create index WMPD_DEPLOYMENTTIME on WMPROCESSDEFINITION (DEPLOYMENTTIME) tablespace WEBMINDX parallel nologging;
Create the indices in the original database schema for Integration too.
These are neccessary to increase archive performance. We had the issue that archiving got stuck without these indices esp. when the database schema grows large.
Archiving via MWS UI only works when there is only on IS configured on it as the portlet does not include the server selector portlet to switch between several IS.
I just encountered a similar issue on my internal test environment recently.
I wanted to stop some old process instances from January 2017, which show as started in Monitor UI.
When clicking on the Stop-Button for the instance there is a soap error message (“SOAPException( Client: [ISS.0088.9134] Exception occurred while processing the body of the message )”) displayed.
While checking the IS server.log the following StackTrace is shown:
[913]2017-05-03 16:51:16 CEST [MON.0119.0905E] Error in resubmitting step pipeline: com.wm.monitor.common.util.MonitorException: [pub.monitor.process.instanceControl:changeInstanceStatus] java.lang.Exception: Process instance dd8f8a80-167a-1986-92a3-b43536c605e9:1 does not exist.
[912]2017-05-03 16:51:16 CEST [ISC.0022.0119E] Message not found for messageKey 22.119
[911]
[910] at java.lang.Thread.run(Thread.java:745)
[909] at com.wm.util.pool.PooledThread.run(PooledThread.java:119)
[908] at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:383)
[907] at com.wm.app.b2b.server.HTTPDispatch.handleRequest(HTTPDispatch.java:173)
[906] at com.wm.app.b2b.server.HTTPSOAPHandler.process(HTTPSOAPHandler.java:147)
[905] at com.wm.app.b2b.server.HTTPSOAPHandler._process(HTTPSOAPHandler.java:521)
[904] at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:108)
[903] at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:244)
[902] at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:384)
[901] at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:545)
[900] at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:369)
[899] at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:34)
[898] at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:291)
[897] at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
[896] at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
[895] at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
[894] at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:49)
[893] at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
[892] at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:646)
[891] at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:443)
[890] at java.lang.reflect.Method.invoke(Method.java:606)
[889] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[888] at sun.reflect.GeneratedMethodAccessor776.invoke(Unknown Source)
[887] at wm.server.soap.rpc(soap.java:1023)
[886] at com.wm.app.b2b.server.Service.doInvoke(Service.java:644)
[885] at com.wm.app.b2b.server.Service.doInvoke(Service.java:704)
[884] at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:93)
[883] at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:244)
[882] at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:384)
[881] at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:545)
[880] at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:369)
[879] at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:34)
[878] at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:291)
[877] at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
[876] at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
[875] at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
[874] at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:49)
[873] at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
[872] at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:646)
[871] at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:443)
[870] at java.lang.reflect.Method.invoke(Method.java:606)
[869] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[868] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[867] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[866] at ws.monitor.process.instanceControl.setStatus(instanceControl.java:60)
[865] at com.wm.app.b2b.server.Service.doInvoke(Service.java:644)
[864] at com.wm.app.b2b.server.Service.doInvoke(Service.java:704)
[863] at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:93)
[862] at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:244)
[861] at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:384)
[860] at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:545)
[859] at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:369)
[858] at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:34)
[857] at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:291)
[856] at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
[855] at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
[854] at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
[853] at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:49)
[852] at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
[851] at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:646)
[850] at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:443)
[849] at java.lang.reflect.Method.invoke(Method.java:606)
[848] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[847] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[846] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[845] at pub.monitor.process.instanceControl.changeInstanceStatus(instanceControl.java:106)
[844]2017-05-03 16:51:16 CEST [MOD.0120.0000I] java.lang.Exception: Process instance dd8f8a80-167a-1986-92a3-b43536c605e9:1 does not exist.
[843]2017-05-03 16:51:16 CEST [MON.0119.0022E] Error in publishing process control event to Process Runtime: java.lang.Exception: Process instance dd8f8a80-167a-1986-92a3-b43536c605e9:1 does not exist.
So there is a mismatch between 2 tables of process audit database.
One table is used for displaying data in the Monitor UI, the other onee to handle the control events from Process Engine.
Looks like an audit logging issue:
When the completion event is being processed by the audit logging it gets reflected in one table, but not in the other.
During archiving the table with the “Completed”-Status gets cleaned, but not the table where the status failed to update.
Currently the only option to get this working again is to manually set the status for the instance in the table where the data is existing top stopped and then run archiving again.