Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The monitoring stream handles continuous execution check and check for stuck workflows (workflows which execution takes longer than expected). Parameters for this checks are set in *.spf profiles described below.

SPF Profiles

Example of an *.spf profile contents:

...

  • unit is a special parameter, works as a pointer on type of the include in case of new alerts processing;
  • workflow is workflow name;
  • type sets the type of processing ;
  • timeperiod is time period in seconds;
  • timethreshold is processing limit in seconds;
  • error_prefix sets default type of alerts for this workflow;
  • notificationemail is default email for notifications;
  • patterns switches on/off sending alerts

Processing Details

Query

All new code will be in read_workflow_profiles.inc. This include will execute  executes the following sql query from the start.:

Expand
titleClick to expand:


Code Block
languagesql
select
  req_def.INSTANCE          ,
  req_def.CORRELATION_ID    ,
   case
    when INSTR( queue_def.ProcessCorrelationId, 'DATA' ) > 0
    then substr(queue_def.ProcessCorrelationId,1,INSTR( queue_def.ProcessCorrelationId, 'DATA' ))
    else queue_def.ProcessCorrelationId
   end as PROCESS_CORRELATION_ID,
   req_def.BUS_TASK_ID       ,
   req_def.PROC_STATUS       ,
   to_char(req_def.UPDATE_DATE,'YYYYMMDD HH24MISS') UPDATE_DATE,
   queue_def.SCHED_QUEUE_INSTANCE ,
   queue_def.orch_state_clob ORCH_STATE,
   to_char(queue_def.CREATE_DATE,'YYYYMMDD HH24MISS') CREATE_DATE
from
PACE_MASTERDBO.ORCH_REQUEST_DEF req_def,
(select  q.SCHED_QUEUE_INSTANCE ,
   q.ORCH_REQ_DEF_INSTANCE,
   q.orch_state_clob,
   q.CREATE_DATE,
case
when INSTR( q.orch_state_clob, ':ProcessCorrelationId:' ) > 0
then to_char(substr(q.orch_state_clob,INSTR( q.orch_state_clob, ':ProcessCorrelationId:' )+22,INSTR( q.orch_state_clob, ':', INSTR( q.orch_state_clob, ':ProcessCorrelationId:' )+22 ) - INSTR( q.orch_state_clob, ':ProcessCorrelationId:' ) -22 ))
else ''
end as ProcessCorrelationId
from
PACE_MASTERDBO.ORCH_queue q
      where
      q.CREATE_DATE >= trunc(sysdate)
) queue_def
  where
     req_def.instance = queue_def.orch_req_def_instance and
     req_def.correlation_id = queue_def.ProcessCorrelationId and
     req_def.instance not in (select orch_instance from PACE_MASTERDBO.ORCH_REQUEST_PARAMS where PARAMETER_NAME in ('sn_stuck_workflow') and update_date>=trunc(sysdate))
order by req_def.INSTANCE desc


Result of this query is all necessary information about launched workflows (except for already processed).

Result of the query All this is loaded to a file .After that include check existing and then include checks existing *.spf profiles in ml2-0_cm_profiles folder.

...

Alerts processing

All Alert processing will use uses methods from the time utils include. Every workflow from profile will be looked for in A search in the query results file is performed for every workflow in the profile. For periodic alerts last workflow with name from profile will be is checked through by update_date and current time values difference and if the difference will be is greater than timeperiod parameter – this workflow will be write down in is written down into current event array. For stuck workflow alerts type all processing workflows will be checked and if theirs processing time will be greater than timethreshold – it will be also write down in the current event array.

...

Every line in current event array will be parsed. With create_tsr.inc TSR with necessary information will be created. Type of the TSR message will be choosed is chosen from current event line time variables type.

...

Eas_distribution changes

TSR parsing

For parsing the incoming TSR TSRs tsr_to_w_state.inc will be usedis used. This include file transform transforms incoming TSR with

xslt translation to correlation Id and email address from error description (if the TSR has in description AlertNotificationEmail) and with correlation ID and get_w_state.inc get task parameter AlertNotificationEmail (this parameter is unique!) . If this parameter is exist – it will be used as email address, if parameter doesn’t exist include will use address from description or default email.

...