Wednesday 4 January 2017

IBM BPM - Tinkering with Process Instance Cleanup - aka BPMProcessInstancesCleanup

The context here is that I'm looking at the mechanisms for house-keeping an IBM Business Process Manager (BPM) environment, and am specifically focused upon process instances.

I'm using BPM Advanced 8.5.7 ( aka  8.5.7.201612 ).

So we have some work for the database administrator ( here I'm using DB2 10.5 on Linux, other databases are available ): -

Connect to BPM DB

db2 connect to bpmdb

Set Current Schema to db2user1

db2 set current schema db2user1

Check Execution Status

db2 "select STATUS_ID, NAME from LSW_BPD_STATUS_CODES"

       1. Active                                                                                                                                                                                                  
       2. Completed                                                                                                                                                                                               
       3. Failed                                                                                                                                                                                                  
       4. Terminated                                                                                                                                                                                              
       5. Did_not_Start                                                                                                                                                                                           
       6. Suspended                         

Summarise Status

db2 "select inst.EXECUTION_STATUS, count(*) as total from LSW_BPD_INSTANCE inst, LSW_TASK task where task.BPD_INSTANCE_ID = inst.BPD_INSTANCE_ID group by inst.EXECUTION_STATUS"

EXECUTION_STATUS TOTAL      
---------------- -----------
              1.           1
              2.           1
              4.           1
              6.           1

This means that we have four instances in total; one Active, one Completed, one Terminated and one Suspended.

Check for Active Instances

db2 "select BPD_INSTANCE_ID,SNAPSHOT_ID from LSW_BPD_INSTANCE where EXECUTION_STATUS = '1'"

BPD_INSTANCE_ID SNAPSHOT_ID                         

            11. 3053758b-8764-4c1c-854a-ad0982143313

Check for Completed Instances

db2 "select BPD_INSTANCE_ID,SNAPSHOT_ID from LSW_BPD_INSTANCE where EXECUTION_STATUS = '2'"

BPD_INSTANCE_ID SNAPSHOT_ID                         

             4. 3053758b-8764-4c1c-854a-ad0982143313

Check for Terminated Instances

db2 "select BPD_INSTANCE_ID,SNAPSHOT_ID from LSW_BPD_INSTANCE where EXECUTION_STATUS = '4'"

BPD_INSTANCE_ID SNAPSHOT_ID                         

             6. 3053758b-8764-4c1c-854a-ad0982143313
             7. 3053758b-8764-4c1c-854a-ad0982143313
             8. 3053758b-8764-4c1c-854a-ad0982143313
             9. 3053758b-8764-4c1c-854a-ad0982143313

Check for Suspended Instances

db2 "select BPD_INSTANCE_ID,SNAPSHOT_ID from LSW_BPD_INSTANCE where EXECUTION_STATUS = '6'"

BPD_INSTANCE_ID SNAPSHOT_ID                         

            10. f1659d94-2365-4903-8a90-9fa62f3ccc97

Correlate Snapshots to Process Applications

db2 "select NAME,ACRONYM from LSW_SNAPSHOT where SNAPSHOT_ID = '3053758b-8764-4c1c-854a-ad0982143313'"

NAME ACRONYM

Procurement Sample v8570 PSV8570 

db2 "select NAME,ACRONYM from LSW_SNAPSHOT where SNAPSHOT_ID = 'f1659d94-2365-4903-8a90-9fa62f3ccc97'"

NAME ACRONYM

Responsive Hiring Sample v8570 RHSV8_1                                                                                                                                                                                                                                                         

With the details of the snapshots, applications and instances, we now pass control to the BPM administrator: -

Start WSAdmin Client ( note; this is against the AppCluster SOAP port )

/opt/ibm/WebSphereProfiles/Dmgr01/bin/wsadmin.sh -host bpm857.uk.ibm.com -port 8881 -lang jython -user wasadmin -password passw0rd

List Installed Process Applications

print AdminTask.BPMListProcessApplications()

...
Name: Hiring Sample
Acronym: HSS
Description: Hiring Sample
Toolkit: false

Name: Hiring Sample Advanced
Acronym: HSAV1
Description: 
Toolkit: false

Name: Procurement Sample
Acronym: STPPS1
Description: 
Toolkit: false
...

Show Snapshot Details of Chosen Process Application

print AdminTask.BPMShowProcessApplication('[-containerAcronym HSAV1]')

Name: Hiring Sample Advanced
Acronym: HSAV1
Description: 
Toolkit: false
Tracks:

Track Name: Main
Track Acronym: Main
Default: true

Tip: 
Created On: 2016-12-30 14:01:25.987
Created By: User.9
State: State[Inactive]
Capability: Capability[Advanced]
No of running instances: 0

List of Snapshots: 
Name: Advanced Hiring Sample v8570
Acronym: AHSV857
Created On: 2016-12-30 14:01:25.987
Created By: User.9
Is Default: false
State: State[Undeployed]
Capability: Capability[Advanced]
No of running instances: 0

print AdminTask.BPMShowSnapshot('[-containerAcronym HSAV1 -containerSnapshotAcronym AHSV857 ]')

Name: Advanced Hiring Sample v8570
Acronym: AHSV857
Created On: 2016-12-30 14:01:25.987
Created By: User.9
Is Default: false
State: State[Undeployed]
Capability: Capability[Advanced]
Theme: BPM Theme
No of running instances: 0


Dependency:
Toolkit Acronym: TWSYS
Toolkit Name: System Data
Toolkit Track Acronym: Main
Toolkit Track Name: Main
Snapshot Name: 8.5.7.0
Snapshot Acronym: 8.5.7.0
Created On: 2016-12-30 14:00:39.906
Created By: User.9


Dependency:
Toolkit Acronym: SYSC
Toolkit Name: Coaches
Toolkit Track Acronym: Main
Toolkit Track Name: Main
Snapshot Name: 8.5.7.0
Snapshot Acronym: 8.5.7.0
Created On: 2016-12-30 14:00:47.195
Created By: User.9


Dependency:
Toolkit Acronym: SYSRC
Toolkit Name: Responsive Coaches
Toolkit Track Acronym: Main
Toolkit Track Name: Main
Snapshot Name: 8.5.7.0
Snapshot Acronym: 8.5.7.0
Created On: 2016-12-30 14:00:50.024
Created By: User.9

print AdminTask.BPMShowProcessApplication('[-containerAcronym HSS]')

Name: Hiring Sample
Acronym: HSS
Description: Hiring Sample
Toolkit: false
Tracks:

Track Name: Main
Track Acronym: Main
Default: true

Tip: 
Created On: 2016-12-30 14:01:22.959
Created By: User.9
State: State[Inactive]
Capability: Capability[Standard]
No of running instances: 0

List of Snapshots: 
Name: Responsive Hiring Sample v8570
Acronym: RHSV8_1
Created On: 2016-12-30 14:01:22.959
Created By: User.9
Is Default: false
State: State[Inactive]
Capability: Capability[Standard]
No of running instances: 0

print AdminTask.BPMShowSnapshot('[-containerAcronym HSS -containerSnapshotAcronym RHSV8_1 ]')

Name: Responsive Hiring Sample v8570
Acronym: RHSV8_1
Created On: 2016-12-30 14:01:22.959
Created By: User.9
Is Default: false
State: State[Inactive]
Capability: Capability[Standard]
Theme: BPM Theme
No of running instances: 0


Dependency:
Toolkit Acronym: TWSYS
Toolkit Name: System Data
Toolkit Track Acronym: Main
Toolkit Track Name: Main
Snapshot Name: 8.5.7.0
Snapshot Acronym: 8.5.7.0
Created On: 2016-12-30 14:00:39.906
Created By: User.9


Dependency:
Toolkit Acronym: SYSRC
Toolkit Name: Responsive Coaches
Toolkit Track Acronym: Main
Toolkit Track Name: Main
Snapshot Name: 8.5.7.0
Snapshot Acronym: 8.5.7.0
Created On: 2016-12-30 14:00:50.024
Created By: User.9

print AdminTask.BPMShowProcessApplication('[-containerAcronym STPPS1]')

Name: Procurement Sample
Acronym: STPPS1
Description: 
Toolkit: false
Tracks:

Track Name: Main
Track Acronym: Main
Default: true

Tip: 
Created On: 2016-12-30 14:01:30.466
Created By: User.9
State: State[Inactive]
Capability: Capability[Advanced]
No of running instances: 0

List of Snapshots: 
Name: Procurement Sample v8570
Acronym: PSV8570
Created On: 2016-12-30 14:01:30.466
Created By: User.9
Is Default: false
State: State[Undeployed]
Capability: Capability[Advanced]
No of running instances: 0

print AdminTask.BPMShowSnapshot('[-containerAcronym STPPS1 -containerSnapshotAcronym PSV8570 ]')

Name: Procurement Sample v8570
Acronym: PSV8570
Created On: 2016-12-30 14:01:30.466
Created By: User.9
Is Default: false
State: State[Undeployed]
Capability: Capability[Advanced]
Theme: BPM Theme
No of running instances: 0


Dependency:
Toolkit Acronym: TWSYS
Toolkit Name: System Data
Toolkit Track Acronym: Main
Toolkit Track Name: Main
Snapshot Name: 8.5.7.0
Snapshot Acronym: 8.5.7.0
Created On: 2016-12-30 14:00:39.906
Created By: User.9


Dependency:
Toolkit Acronym: SYSRC
Toolkit Name: Responsive Coaches
Toolkit Track Acronym: Main
Toolkit Track Name: Main
Snapshot Name: 8.5.7.0
Snapshot Acronym: 8.5.7.0
Created On: 2016-12-30 14:00:50.024
Created By: User.9

Run Instance Cleanup for Hire Sample ( note; all instances, regardless of status )

print AdminTask.BPMProcessInstancesCleanup('[-containerAcronym HSS -containerSnapshotAcronym RHSV8_1 ]')

The BPMProcessInstancesCleanup command passed.

Check results in AppCluster Logs

tail -f /opt/ibm/WebSphereProfiles/AppSrv01/logs/AppClusterMember1/SystemOut.log

[04/01/17 09:58:05:333 GMT] 000001eb CommandServic I PALAdminCommands otherProcessInstancesCleanup Entering
[04/01/17 09:58:05:355 GMT] 000001eb Log           I   PAL: About to start the BPMProcessInstancesCleanup with parameters:  -containerAcronym Hiring Sample -containerSnapshotAcronym RHSV8_1 -instanceStatus ALL  -maximumduration 0 -transactionSlice 1
[04/01/17 09:58:05:355 GMT] 000001eb Log           I   PAL: Number of qualifying instances before deletion: 1
[04/01/17 09:58:05:543 GMT] 000001eb Log           I   PAL: A deletion job is running. Progress: Deleted 1 instance(s).
[04/01/17 09:58:05:544 GMT] 000001eb Log           I   PAL: Every instance has been deleted. The deletion job finished.
[04/01/17 09:58:05:564 GMT] 000001eb Log           I   PAL: Successfully ran the BPMProcessInstancesCleanup command with parameters:  -containerAcronym Hiring Sample -containerSnapshotAcronym RHSV8_1 -instanceStatus ALL  -maximumduration 0 -transactionSlice 1
[04/01/17 09:58:05:564 GMT] 000001eb Log           I   PAL: Number of qualifying instances before deletion: 1
[04/01/17 09:58:05:569 GMT] 000001eb Log           I   PAL: Number of qualifying instances after deletion: 0
[04/01/17 09:58:05:573 GMT] 000001eb CommandServic I PALAdminCommands otherProcessInstancesCleanup Exiting
[04/01/17 09:58:15:288 GMT] 00000124 ProcessIndexB I   CWLLG0757I: The purge process was completed successfully. 2 tasks and 1 instances were successfully removed from the search index.

Run Instance Cleanup for Hire Sample Advanced ( note; all instances, regardless of status )

print AdminTask.BPMProcessInstancesCleanup('[-containerAcronym HSAV1 -containerSnapshotAcronym AHSV857 ]')

The BPMProcessInstancesCleanup command passed.

Check results in AppCluster Logs

tail -f /opt/ibm/WebSphereProfiles/AppSrv01/logs/AppClusterMember1/SystemOut.log

[04/01/17 10:03:46:320 GMT] 000001ec CommandServic I PALAdminCommands otherProcessInstancesCleanup Entering
[04/01/17 10:03:46:340 GMT] 000001ec Log           I   PAL: About to start the BPMProcessInstancesCleanup with parameters:  -containerAcronym Hiring Sample Advanced -containerSnapshotAcronym AHSV857 -instanceStatus ALL  -maximumduration 0 -transactionSlice 1
[04/01/17 10:03:46:340 GMT] 000001ec Log           I   PAL: Number of qualifying instances before deletion: 1
[04/01/17 10:03:46:422 GMT] 000001ec Log           I   PAL: A deletion job is running. Progress: Deleted 1 instance(s).
[04/01/17 10:03:46:423 GMT] 000001ec Log           I   PAL: Every instance has been deleted. The deletion job finished.
[04/01/17 10:03:46:433 GMT] 000001ec Log           I   PAL: Successfully ran the BPMProcessInstancesCleanup command with parameters:  -containerAcronym Hiring Sample Advanced -containerSnapshotAcronym AHSV857 -instanceStatus ALL  -maximumduration 0 -transactionSlice 1
[04/01/17 10:03:46:434 GMT] 000001ec Log           I   PAL: Number of qualifying instances before deletion: 1
[04/01/17 10:03:46:439 GMT] 000001ec Log           I   PAL: Number of qualifying instances after deletion: 0
[04/01/17 10:03:46:444 GMT] 000001ec CommandServic I PALAdminCommands otherProcessInstancesCleanup Exiting
[04/01/17 10:03:55:324 GMT] 00000124 ProcessIndexB I   CWLLG0757I: The purge process was completed successfully. 3 tasks and 1 instances were successfully removed from the search index.

Run Instance Cleanup for Procurement Sample; only for Terminated instances

print AdminTask.BPMProcessInstancesCleanup('[-containerAcronym STPPS1 -containerSnapshotAcronym PSV8570 -instanceStatus CANCELED -instanceID [ 6 7 8 9 ]]')

The BPMProcessInstancesCleanup command passed.

Check results in AppCluster Logs

tail -f /opt/ibm/WebSphereProfiles/AppSrv01/logs/AppClusterMember1/SystemOut.log

[04/01/17 16:18:02:778 GMT] 000001ec CommandServic I PALAdminCommands otherProcessInstancesCleanup Entering
[04/01/17 16:18:02:800 GMT] 000001ec Log           I   PAL: About to start the BPMProcessInstancesCleanup with parameters:  -containerAcronym Procurement Sample -containerSnapshotAcronym PSV8570 -instanceStatus CANCELED  -instanceID [6, 7, 8, 9] -maximumduration 0 -transactionSlice 1
[04/01/17 16:18:02:801 GMT] 000001ec Log           I   PAL: Number of qualifying instances before deletion: 4
[04/01/17 16:18:02:883 GMT] 000001ec Log           I   PAL: A deletion job is running. Progress: Deleted 1 instance(s).
[04/01/17 16:18:02:907 GMT] 000001ec Log           I   PAL: A deletion job is running. Progress: Deleted 1 instance(s).
[04/01/17 16:18:02:919 GMT] 000001ec Log           I   PAL: A deletion job is running. Progress: Deleted 1 instance(s).
[04/01/17 16:18:02:931 GMT] 000001ec Log           I   PAL: A deletion job is running. Progress: Deleted 1 instance(s).
[04/01/17 16:18:02:931 GMT] 000001ec Log           I   PAL: Every instance has been deleted. The deletion job finished.
[04/01/17 16:18:02:947 GMT] 000001ec Log           I   PAL: Successfully ran the BPMProcessInstancesCleanup command with parameters:  -containerAcronym Procurement Sample -containerSnapshotAcronym PSV8570 -instanceStatus CANCELED  -instanceID [6, 7, 8, 9] -maximumduration 0 -transactionSlice 1
[04/01/17 16:18:02:948 GMT] 000001ec Log           I   PAL: Number of qualifying instances before deletion: 4
[04/01/17 16:18:02:954 GMT] 000001ec Log           I   PAL: Number of qualifying instances after deletion: 0
[04/01/17 16:18:02:959 GMT] 000001ec CommandServic I PALAdminCommands otherProcessInstancesCleanup Exiting
[04/01/17 16:18:08:806 GMT] 00000124 ProcessIndexB I   CWLLG0757I: The purge process was completed successfully. 4 tasks and 4 instances were successfully removed from the search index.

Run Instance Cleanup for Responsive Hiring Sample; only for Suspended Instances

print AdminTask.BPMProcessInstancesCleanup('[-containerAcronym HSS -containerSnapshotAcronym RHSV8_1 -instanceStatus ALL -instanceID [ 10 ]]')

The BPMProcessInstancesCleanup command passed.

Check results in AppCluster Logs

tail -f /opt/ibm/WebSphereProfiles/AppSrv01/logs/AppClusterMember1/SystemOut.log

[04/01/17 16:35:30:072 GMT] 000001eb CommandServic I PALAdminCommands otherProcessInstancesCleanup Entering
[04/01/17 16:35:30:089 GMT] 000001eb Log           I   PAL: The process instance with the ID '10' is in the state '6' which is not a specified state and will not be deleted.
[04/01/17 16:35:30:096 GMT] 000001eb CommandServic I PALAdminCommands otherProcessInstancesCleanup Exiting
[04/01/17 16:35:38:927 GMT] 00000124 ProcessIndexB I   CWLLG0757I: The purge process was completed successfully. 0 tasks and 0 instances were successfully removed from the search index.

This shows that one can NOT cleanup instances that are suspended; the instance either needs to be resumed, and then completed, OR terminated, before cleanup can take place

Run Instance Cleanup for Procurement Sample; only for Active Instances

print AdminTask.BPMProcessInstancesCleanup('[-containerAcronym STPPS1 -containerSnapshotAcronym PSV8570 -instanceStatus ALL -instanceID [ 11 ]]')

The BPMProcessInstancesCleanup command passed.

Check results in AppCluster Logs

tail -f /opt/ibm/WebSphereProfiles/AppSrv01/logs/AppClusterMember1/SystemOut.log

[04/01/17 16:46:24:475 GMT] 000001eb CommandServic I PALAdminCommands otherProcessInstancesCleanup Entering
[04/01/17 16:46:24:489 GMT] 000001eb Log           I   PAL: The process instance with the ID '11' is in the state '1' which is not a specified state and will not be deleted.
[04/01/17 16:46:24:494 GMT] 000001eb CommandServic I PALAdminCommands otherProcessInstancesCleanup Exiting
[04/01/17 16:46:34:029 GMT] 00000124 ProcessIndexB I   CWLLG0757I: The purge process was completed successfully. 0 tasks and 0 instances were successfully removed from the search index.

This shows that one can NOT cleanup instances that are active; the instance either needs to be completed, OR terminated, before cleanup can take place

My next mission is to look at the BPMProcessInstancesPurge command, which supersedes BPMProcessInstancesCleanup, which has been deprecated.

That's tomorrow's job ….

With thanks to this: -


No comments:

Visual Studio Code - Wow 🙀

Why did I not know that I can merely hit [cmd] [p]  to bring up a search box allowing me to search my project e.g. a repo cloned from GitHub...