// delete process instances
LogUtil.info(getClass().getName(), "Deleting all running processes for " + packageId);
Shark shark = Shark.getInstance();
ExecutionAdministration ea = shark.getExecutionAdministration();
WMSessionHandle sessionHandle = sc.getSessionHandle();
PackageAdministration pa = getSharkPackageAdmin(sessionHandle);
WAPI wapi = shark.getWAPIConnection();
WfProcessIterator wpi = sc.get_iterator_process();
ProcessFilterBuilder fb = shark.getProcessFilterBuilder();
WMFilter filter = fb.addPackageIdEquals(sessionHandle, packageId);
wpi.set_query_expression(fb.toIteratorExpression(sessionHandle, filter));
WfProcess[] procs = wpi.get_next_n_sequence(0);
for (int i = 0; i < procs.length; i++) {
String instanceId = procs[i].key();
if (procs[i].state().startsWith(SharkConstants.STATEPREFIX_OPEN)) {
wapi.terminateProcessInstance(sessionHandle, instanceId);
LogUtil.info(getClass().getName(), " -- Terminated open process " + instanceId);
}
ea.deleteProcesses(sessionHandle, new String[]{instanceId});
LogUtil.info(getClass().getName(), " -- Deleted process " + instanceId);
}
// unload
pa.closeAllPackagesForId(sessionHandle, packageId);
} catch (Exception ex) {