DD subsystem interface
This topic discusses started tasks and their use of the DD SUBSYS to supply the equivalent of JECL to ThruPut Manager.
Introduction
The DD SUBSYS interface was originally provided because started tasks could not use the services of JES2 control statements. This was not a ThruPut Manager restriction, it was the way that z/OS/JES2 worked. Current versions of z/OS allow ThruPut Manager to provide JECL services by using the JCL comment form for statements:
While the DD SUBSYS interface is still supported, we recommend the use of the simpler JCL comment form.
DD SUBSYS interface
Started tasks can request ThruPut Manager services using the SUBSYS keyword of the JCL DD statement. This is the equivalent of JECL statements for batch jobs. The format is shown on the next page.
Started tasks are not processed by the Job Analyzer. As a result:
- The ThruPut Manager installation exit 19 is not invoked.
- JAL Verification of JECL control statements is not applicable.
Since started tasks are under the control of the datacenter, the above services are normally not required.
DD SUBSYS
JECL for started tasks
Provides started tasks with a mechanism to include the equivalent of JES2 control statements in their JCL.
//ddname DD SUBSYS=($$TM,'JBS DEACTIVATE ....')
//ddname DD SUBSYS=($$TM,'JBS BIND ....')
//ddname DD SUBSYS=($$TM,'JBS MESSAGE ....')
//ddname DD SUBSYS=($$TM,'JLS LIMIT ....')
Can be any arbitrary DD name.
Indicates that this DD statement is to be processed by the named subsystem.
Is the name of the ThruPut Manager subsystem.
Conform to the /*JBS ACTIVATE and /*JBS DEACTIVATE JES2 control statements format described in JECL Reference Guide.
You can use JBS API services to activate and deactivate Agents. The JBS MESSAGE facility can also be used. It is described below.
Can be used to ensure that the started task is being initiated in the correct processor, or when a particular GLOBAL Agent is active:
- If the Agent is not active the started task is not initiated.
- If the Agent is active but in a different processor the started task is not initiated.
In both cases, an appropriate message is issued to indicate the problem.
This conforms with the JECL 'JBS MESSAGE' statement described in JECL Reference Guide. The only consideration is the syntax requirements resulting from JCL conventions for the use of apostrophes. The best way to show the required syntax is with an example.
Here is a JECL statement:
The equivalent DD SUBSYS request is:
The JCL syntax rule is simple (even though the resulting statement looks awkward): The character string to be passed to the subsystem must be enclosed in apostrophes. This explains the opening and closing apostrophes. If the string to be passed contains apostrophes, then you must code two apostrophes for each apostrophe to be passed.
You might ask: what if the message string I want to match has apostrophes? Again an example is the best way to show the syntax. The message to match is IEA123I DAY'S TEST.
Here is the JECL statement:
The equivalent DD SUBSYS request is:
A bit tedious, but this follows the consistent rule of coding two apostrophes for each one to be passed to the subsystem.
Can be used to associate a started task with a Limiting Agent. If the limit has been reached the started task is not initiated.
This can be used to prevent the accidental starting of a task. For example, you may want to have only one task of a given type active in your MAS complex. Placing a Limiting Agent with a Limit of 1 prevents another similar task from starting.