/ *DJC SIGNAL
Request to Signal Event
This statement is used to signal a DJC Event. The event is always associated with the DJC Group of the job issuing the signal. The signal can be specified to occur at the beginning of the job, at a designated step end, or upon the occurrence of a specified message from the job.
When the event is signaled, it causes any statements that were associated with this event to be evaluated and acted upon.
If there is no AT or API keyword, the event is signaled at the start of the job and the CODE parameter always results in a normal condition code of zero.
/*DJC SIGNAL //*+DJC SIGNAL | name | %CLOSE [,AT=stepname | API=id] ,SET=[ nnnn | STEPCODE | Sxxx | Unnnn | FLUSH | FAILS ] |
name
Represents a DJC Event name, which consists of 2-9 alphanumeric or national characters, the first of which must be a percent sign (%).
%CLOSE
The special DJC Event name %CLOSE is reserved. The first time %CLOSE is signalled, the DJC Group becomes closed, i.e. it no longer accepts new jobs or DJC Events from other Groups. You can set and test values for %CLOSE just like any other DJC Event. When %CLOSE is signalled as a result of a /*DJC GROUP statement or an operator command, it is given a value of 0.
AT=stepname
Indicates that the event is to be signaled at the completion of the named step.
stepname
The name of the step.
In cases where there are multiple steps with the same name, the form:
stepname.procstepname
can be coded with the keyword AT. Otherwise the first step that matches the name triggers the signal.
API=id
Indicates that the job intends to signal the event through the API interface.
id
This is a two digit identifier that connects the API request to a message described with the DJC MESSAGE JECL statement.
SET=nnnn
This keyword associates a value with the signal of the event.
nnnn
Represents a fixed integer from the range 0-4095.
SET=STEPCODE
When the SET keyword is coded with this parameter, if the step terminates normally then the signal is posted with a value equal to the condition code for the step.
If the step terminates abnormally, the signal is posted with a value of Sxxx or Unnnn equal to the value of the user or system abend code.
SET=Sxxx
When the SET keyword is coded with this parameter, the signal is posted with a value of Sxxx, exactly as though a system abend had taken place. Note that this does not necessarily indicate that there actually was a system abend.
Sxxx
represents 3 hexadecimal characters. All the digits must be coded, e.g. S001.
SET=Unnnn
When the SET keyword is coded with this parameter, the signal is posted with a value of Unnnn, exactly as though a user abend had taken place. Note that this does not necessarily indicate that there actually was a user abend. Unnnn represents a four digit number between 0-4095. All the digits must be coded, e.g. U000
SET=FAILS
When the SET keyword is coded with this parameter, the signal is posted with a value of FAILS, exactly as though the job had failed. Note that this does not necessarily indicate that the job triggering the signal failed, but the signal is sent as if it had.
SET=FLUSH
When the SET keyword is coded with this parameter, the signal is posted with a value of FLUSH, exactly as though a FLUSH had taken place. Note that this does not necessarily indicate that the job triggering the signal was flushed, but the signal is sent as if it were.
Examples:
//*+DJC GROUP whatever.whatever
//*+DJC SIGNAL %PRICE AT=STEP05
//*+DJC SIGNAL %PARTS AT=STEP09
...
This job will signal other jobs in the Group as soon as STEP05 and STEP09 are completed. Other jobs do not have to wait until JOBLONG terminates and can take advantage of the parallel processing of production job streams.
See Also: /*DJC MESSAGE .
Notes:
The same event can be signaled multiple times with different values. Every time the event is signaled pending dependencies are evaluated. That is, references that have already been resolved are not affected.
A normal completion automatically posts the signals NORMAL and EVEN.
An abnormal completion automatically posts the signals ONLY and EVEN.