public static void main(String[] args) { InstanceFilter instf = new InstanceFilter( "name = dtc* namespace=http://www.intalio.com* " + "status=active|terminated started>=2005-11-29T15:15:19 started<2005-11-29T15:15:20 last-active < 2005-11-30 " + "${http://ode.org/}order-id= 12 $shipping-id=aa45fz", "name started", 50); System.out.println(instf); }
public int countInstancesByPidAndString(BpelDAOConnection conn, QName pid, String status) { InstanceFilter instanceFilter = new InstanceFilter("status=" + status + " pid="+ pid); // TODO: this is grossly inefficient return conn.instanceQuery(instanceFilter).size(); }
int cleanInstances(String filter, final Set<CLEANUP_CATEGORY> categories, int limit) { _log.debug("CRON CLEAN using filter: " + filter + ", limit: " + limit); final InstanceFilter instanceFilter = new InstanceFilter(filter, "", limit); try { if( _contexts.scheduler != null ) { return _contexts.scheduler.execTransaction(new Callable<Integer>() { public Integer call() throws Exception { BpelDAOConnection con = _contexts.dao.getConnection(); if( con instanceof FilteredInstanceDeletable ) { return ((FilteredInstanceDeletable)con).deleteInstances(instanceFilter, categories); } return 0; } }); } else { return 0; } } catch (RuntimeException re) { throw re; } catch (Exception e) { throw new RuntimeException("Exception while listing instances: ", e); } } }
public Collection<Long> delete(String filter) { final InstanceFilter instanceFilter = new InstanceFilter(filter); final List<Long> ret = new LinkedList<Long>(); try { _db.exec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection conn) { Collection<ProcessInstanceDAO> instances = conn.instanceQuery(instanceFilter); for (ProcessInstanceDAO instance : instances) { ProcessConf proc = _store.getProcessConfiguration(instance.getProcess().getProcessId()); if (proc == null) throw new ProcessNotFoundException("ProcessNotFound:" + instance.getProcess().getProcessId()); // delete the instance and all related data instance.delete(EnumSet.allOf(CLEANUP_CATEGORY.class)); ret.add(instance.getInstanceId()); } return null; } }); } catch (Exception e) { __log.error("Exception during instance deletion", e); throw new ProcessingException("Exception during instance deletion: " + e.toString()); } return ret; }
public static List<Long> delete(String filter) { log.info("Instance filter for instance deletion:" + filter); final InstanceFilter instanceFilter = new InstanceFilter(filter); final List<Long> ret = new LinkedList<Long>(); try { dbexec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection conn) { Collection<ProcessInstanceDAO> instances = conn.instanceQuery(instanceFilter); for (ProcessInstanceDAO instance : instances) { instance.delete(EnumSet.allOf(ProcessConf.CLEANUP_CATEGORY.class), true); ret.add(instance.getInstanceId()); } return null; } }); } catch (Exception e) { String errMsg = "Exception during instance deletion. Filter: " + filter; log.error(errMsg, e); throw new ManagementException(errMsg, e); } return ret; }
public List<String> getEventTimeline(String instanceFilter, String eventFilter) { final InstanceFilter ifilter = new InstanceFilter(instanceFilter, null, 0); final BpelEventFilter efilter = new BpelEventFilter(eventFilter, 0); List<Date> tline = dbexec(new BpelDatabase.Callable<List<Date>>() { public List<Date> run(BpelDAOConnection session) throws Exception { return session.bpelEventTimelineQuery(ifilter, efilter); } }); ArrayList<String> ret = new ArrayList<String>(tline.size()); CollectionsX.transform(ret, tline, new UnaryFunction<Date, String>() { public String apply(Date x) { return ISO8601DateParser.format(x); } }); return ret; }
public Object[] findFailedCountAndLastFailedDateForProcessId(BpelDAOConnection conn, String status, String processId) { Date lastFailureDt = null; int failureInstances = 0; InstanceFilter instanceFilter = new InstanceFilter("status=" + status + " pid="+ processId); for (ProcessInstanceDAO instance : conn.instanceQuery(instanceFilter)) { int count = instance.getActivityFailureCount(); if (count > 0) { ++failureInstances; Date failureDt = instance.getActivityFailureDateTime(); if (lastFailureDt == null || lastFailureDt.before(failureDt)) lastFailureDt = failureDt; } } return new Object[] {failureInstances, lastFailureDt}; }
final InstanceFilter instanceFilter = new InstanceFilter(filter); long count = (long) dbexec(new BpelDatabase.Callable<Object>() {
public InstanceInfoListDocument listInstances(String filter, String order, int limit) { InstanceInfoListDocument ret = InstanceInfoListDocument.Factory.newInstance(); final TInstanceInfoList infolist = ret.addNewInstanceInfoList(); final InstanceFilter instanceFilter = new InstanceFilter(filter, order, limit); try { _db.exec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection conn) { Collection<ProcessInstanceDAO> instances = conn.instanceQuery(instanceFilter); for (ProcessInstanceDAO instance : instances) { fillInstanceInfo(infolist.addNewInstanceInfo(), instance); } return null; } }); } catch (Exception e) { __log.error("Exception while listing instances", e); throw new ProcessingException("Exception while listing instances: " + e.toString()); } return ret; }
private Long getInstanceCountByState(String processList, String instanceState) throws InstanceManagementException { if (isProcessListEmpty(processList)) { return (long) 0; } final List<Long> instanceCountList = new ArrayList<Long>(); StringBuilder filter = new StringBuilder(); if (!isProcessListEmpty(processList)) { filter.append(processList); } filter.append("status="); filter.append(instanceState); final InstanceFilter instanceFilter = new InstanceFilter(filter.toString(), null, Integer.MAX_VALUE); try { BpelDatabase bpelDb = bpelServer.getODEBPELServer().getBpelDb(); bpelDb.exec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection conn) throws AxisFault { instanceCountList.add(conn.instanceCount(instanceFilter)); return null; } }); } catch (Exception e) { String errMsg = "Error querying instances from database. Filter: " + instanceFilter.toString(); log.error(errMsg, e); throw new InstanceManagementException(errMsg, e); } return instanceCountList.get(0); }
public Map<InstanceSummaryKey, Long> countInstancesSummary(Set<String> pids) { Map<InstanceSummaryKey, Long> result = new HashMap<InstanceSummaryKey, Long>(); if (!pids.isEmpty()) { for (StatusKeys status : InstanceFilter.StatusKeys.values()) { Query query = getSession().getNamedQuery(HProcessInstance.COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES); query.setParameterList("states", new InstanceFilter("status=" + status.toString()).convertFilterState()); query.setParameterList("processIds", pids); for (Object o : query.list()) { Object[] row = (Object[]) o; InstanceSummaryKey key = new InstanceSummaryKey(row[0].toString(), status.toString()); result.put(key, (Long) row[1]); } } } return result; }
public InstanceInfoListDocument listInstancesSummary(String filter, String order, int limit) { InstanceInfoListDocument ret = InstanceInfoListDocument.Factory.newInstance(); final TInstanceInfoList infolist = ret.addNewInstanceInfoList(); final InstanceFilter instanceFilter = new InstanceFilter(filter, order, limit); try { _db.exec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection conn) { Collection<ProcessInstanceDAO> instances = conn.instanceQuery(instanceFilter); Map<Long, Collection<CorrelationSetDAO>> icsets = conn.getCorrelationSets(instances); for (ProcessInstanceDAO instance : instances) { TInstanceInfo info = infolist.addNewInstanceInfo(); fillInstanceSummary(info, instance); Collection<CorrelationSetDAO> csets = icsets.get(instance.getInstanceId()); if (csets != null) { for (CorrelationSetDAO cset: csets) { Map<QName, String> props = cset.getProperties(); fillProperties(info, instance, props); } } } return null; } }); } catch (Exception e) { __log.error("Exception while listing instances", e); throw new ProcessingException("Exception while listing instances: " + e.toString()); } return ret; }
public EventInfoListDocument listEvents(String instanceFilter, String eventFilter, int maxCount) { final InstanceFilter ifilter = new InstanceFilter(instanceFilter, null, 0); final BpelEventFilter efilter = new BpelEventFilter(eventFilter, maxCount); EventInfoListDocument eid = EventInfoListDocument.Factory.newInstance(); final TEventInfoList eil = eid.addNewEventInfoList(); dbexec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection session) throws Exception { List<BpelEvent> events = session.bpelEventQuery(ifilter, efilter); for (BpelEvent event : events) { TEventInfo tei = eil.addNewEventInfo(); fillEventInfo(tei, event); } return null; } }); return eid; }
final InstanceFilter instanceFilter = new InstanceFilter(filter, orderBy, limit);
private void addFailuresToInstanceSummary(final InstanceSummary instSum, ProcessConf pconf) throws ProcessManagementException { final FailuresInfo failureInfo = new FailuresInfo(); String queryStatus = InstanceFilter.StatusKeys.valueOf(TInstanceStatus.ACTIVE.toString()). toString().toLowerCase(); final InstanceFilter instanceFilter = new InstanceFilter("status=" + queryStatus + " pid=" + pconf.getProcessId()); dbexec(new BpelDatabase.Callable<Void>() { public Void run(BpelDAOConnection conn) throws Exception { Date lastFailureDt = null; int failureInstances = 0; for (ProcessInstanceDAO instance : conn.instanceQuery(instanceFilter)) { int count = instance.getActivityFailureCount(); if (count > 0) { ++failureInstances; Date failureDt = instance.getActivityFailureDateTime(); if (lastFailureDt == null || lastFailureDt.before(failureDt)) { lastFailureDt = failureDt; } } } if (failureInstances > 0) { failureInfo.setCount(failureInstances); failureInfo.setFailureDate(AdminServiceUtils.toCalendar(lastFailureDt)); instSum.setFailures(failureInfo); } return null; } }); }
if (!isSecureFilter(new InstanceFilter(tFilter), tenantProcessStore.getProcessConfigMap().keySet())) { String errMsg = "Instance deletion operation not permitted due to insecure filter: " + tFilter; final InstanceFilter instanceFilter = new InstanceFilter(tFilter);
private void addInstanceSummaryEntry(InstanceSummary instSum, ProcessConf pconf, InstanceStatus state) throws ProcessManagementException { Instances_type0 instances = new Instances_type0(); instances.setState(state); String queryStatus = InstanceFilter.StatusKeys.valueOf(state.toString()).toString(). toLowerCase(); final InstanceFilter instanceFilter = new InstanceFilter("status=" + queryStatus + " pid=" + pconf.getProcessId()); int count = dbexec(new BpelDatabase.Callable<Integer>() { public Integer run(BpelDAOConnection conn) throws Exception { return conn.instanceCount(instanceFilter).intValue(); } }); instances.setCount(count); instSum.addInstances(instances); }
final InstanceFilter instanceFilter = new InstanceFilter(tFilter, order, limit);
final InstanceFilter instanceFilter = new InstanceFilter(tFilter, order, limit);