Type Sequencing

This article describes the Type Sequencing feature in
How to Enable Type Sequencing
The administrator enables Type Sequencing for batch processing. When this feature is enabled, API element actions (if wildcarded or masked) and SCL element actions are processed by a single Type sequence defined at the site level in the Type Sequence member created by the administrator.
How to Enable Global Type Sequencing
How to Enable Global Type Sequencing
To enable Type Sequencing, do the following:
  1. Review Prerequisite Information
  2. Allocate the Parmlib Data Set
  3. Create Your Site Type Sequence Member
  4. Define the Type Sequence Member to C1DEFLTS
  5. Verify the Type Sequence Member
Review Prerequisite Information
Before enabling Type Sequencing, confirm that you understand how processing works. Review the following topics.
  • Type Processing of Batch Jobs
  • How Type Sequencing Works
  • How Type Sequencing Affects Concurrent Action Processing
How Type Sequencing Works
The administrator can establish a processing sequence for Element Types that must be processed in a specific order. For example, COBOL copybooks must be processed before COBOL programs. This Type processing sequence is set at the site level. Other Types, such as JCL, can be processed in any order. You do not need to define such Types in the Type processing sequence.
With Type Sequencing enabled, SCL and API Element actions are executed in the order that their Types are listed in the Type Sequence member. This member is referenced by the Defaults table, C1DEFLTS.  After all listed Types have completed processing, any Types that are not listed are processed. These unlisted Types are processed in Type name order, which is alphabetical order by Type names. If the Type Sequence member does not contain any Types, all SCL and API actions are executed in Type name order.
How Type Sequencing Affects Concurrent Action Processing
Type sequencing is required when using Concurrent Action Processing (CAP). You can make CAP more efficient by including a category definition for Types that can be processed simultaneously. Categories are defined in the Type Sequence table.
Specifying a category in the Type Sequencing table does not affect how sequenced Type and nonsequenced Type requests are built and sorted. The category only affects how the actions are dispatched by Concurrent Action Processing.
CAP processes requests as follows:
  1. When
    is dispatching element actions to process concurrently, it refers both to the Type and to the category associated with the Type when deciding which action requests to dispatch.
    1. If the next request in the sequenced Type chain contains the same category value as the previous request, that element action can be dispatched to an available STC.
      With categories,
      continues dispatching element actions from the sequenced Type chain as long as the category value matches the previous request. Available STCs only have to wait if sequenced Type requests from one category value are still processing and there are no non-sequenced Type requests to process.
    2. If the next request does not have the same category value,
      attempts to dispatch a request from the nonsequenced Type chain.
      Without categories, element actions of the next sequenced Type number have to wait until all actions of the previous sequenced Type have completed processing. Nonsequenced Type element actions are then dispatched as STCs become available or after all the sequenced Type requests are dispatched. Available STCs remain idle if there are sequenced Type requests still processing, and there are no requests from the nonsequenced Type chain to process.
  2. When all the requests have been processed for a particular sequenced Type and category,
    begins processing requests for the next sequenced Type.
  3. When all requests from the sequenced Type chain have been completed, any remaining requests from the nonsequenced Type chain are then dispatched.
Allocate the Parmlib Data Set
To contain the Type Sequence member, the Parmlib data set is required. To allocate the Parmlib data set, edit the BC1JEPRM member in the
JCLLIB data set for your site, and then execute the batch job.
If the Alternate ID feature is active,
uses the Alternate ID when accessing the PARMLIB file.
Create Your Site Type Sequence Member
To specify the Type processing sequence, your site needs a Type Sequence member. The order of the Type records in the Type Sequence member represents the processing sequence. Types that are not defined in the member are processed in the Type name order that is maintained in the target System MCFs after all Types defined in the Type Sequence file are processed. Complete the following steps:
Create the file using one of the following methods:
  • Use the BC1JBTSE utility to build a Type sequence file to a sequential work file, and then edit this file.
  • Use the standard ISPF editor. Add Type sequence records, as appropriate for your site.
Build a Type Sequence Member Using the BC1JBTSE Utility
To create a Type Sequence member, you can use the build utility BC1JBTSE.
Follow these steps:
  1. Edit member BC1JBTSE to conform to the needs of your installation. Then execute this job. The build utility is member BC1JBTSE in the
    CSIQJCL data set for your site. The JCL builds a Type sequence file to a sequential work file. The utility creates Type sequence records for all Types that are defined to a site. The utility reads the C1DEFLTS table to find the Master Control records and then extracts the necessary Type information from the MCF. For each unique Type name that is found, a Type sequence record is created.
    The utility does not merge the Type sequence of one System with another. Unique Type records are written to the file as they are processed, starting with the first System defined in the first environment, stage combination in the C1DEFLTS.
    The Type sequence record description field contains the description from the first unique Type record. The utility produces comment records to identify each Type location occurrence. For example, if Type MAC is defined in environment DEV (stage 1, 2) under System BASE and in environment QA (stage 1,2) also under BASE, four comment records appear following the Type sequence record. The description field in the sequence record is set to the Type description value.
    If your site has environments that you want the utility to exclude, you can create a temporary C1DEFLTS table that excludes these environments and then you can run the utility against the temporary C1DEFLTS. For example, you might have an environment with many test Systems that contain many elements that have never been promoted. Excluding this environment would limit the number of generated Type statements, which could help you define the initial Type sequence order. Any valid Types from the excluded environment could then be added manually.
  2. Edit this file by rearranging the order of the Type record or by deleting Type records. The order of the records in the file will determine the order in which Types are processed.
  3. Copy the file to the Parmlib data set.
Build a Type Sequence Record Using an Editor
The Type records in the Type Sequence member specify the Type processing order for Type Sequencing. You can create a Type sequence file using an ISPF editor.
Follow these steps:
  1. Code Type records in an ISPF editor using the Type Record syntax. Add Type records, as appropriate for your site.
  2. Order the records in the order that you want the Types to process.
Type Record Syntax for Type Sequence File
The Type Record syntax defines the Type processing sequence in the Type Sequence member.
Type records use the following syntax:
TYPe ‘Type-name’ [SYStem ‘system-name’] [CATegory ‘category-value’] DESCription ‘Sample Type Description’.
The following general rules apply to the Type record syntax:
  • The ending period (.) delimiter is required.
  • The Type name and description fields can be on separate lines.
  • Each record is 80 bytes.
  • No text can appear in columns 73 through 80.
  • Comments can appear in the file by placing an asterisk in the first column position.
  • TYPE
    Specifies a one- to eight-character Type. Enclosing the name in single quotes is optional. The name is converted to uppercase characters.
    (Optional) Specifies the one- to eight-character System name where the Type is located. Enclosing the name in single quotes is optional. If Types with the same name are located in different Systems, this clause lets you specify different processing orders for each Type and System combination. If this clause is omitted, the Type sequence order for the Type name applies to the entire site. The name is converted to uppercase characters.
    (Optional) Specifies a one- to eight-character alphanumeric name for a Type group. Enclosing the category-value in single quotes is required. During Concurrent Action Processing (Concurrent Action Processing) dispatch, if Category was specified, the Category value is compared to the previous request. If the Category values match, the action is dispatched and processed simultaneously with the previous request.
    The Category value does not affect how the request chains are built or sorted, nor does it affect normal processing order. This parameter enables the next Type in the sequence to start processing before the prior Type in the sequence finishes, provided both requests are in the same Category group. If the Category clause is omitted, the Type is still processed in order.
    The value is converted to uppercase characters. If Concurrent Action Processing is not enabled, the Category clause has no effect.
    The Type grouping Concurrent Action Processingability affects processing only when Concurrent Action Processing is in effect; it has no effect on Type Sequencing itself. Type Sequencing alone simply uses the Type processing order that is defined in the Type Sequencing member, but does not cause the simultaneous processing of actions.
  • DESCription
    Specifies an up to 50-character description of the Type. Enclosing the description in single quotes is required. When the text contains single quotes, these quotes are converted to blanks. The description text can be entered in uppercase or lowercase characters.
Example: Type Sequence with Type Categories
In this example, the following table lists element Types in the order that an Administrator wants the Types to be processed. The Category column indicates the category for simultaneous processing for Concurrent Action Processing. Thus elements of Type ASMMAC, CHDR, and COPYBOOK can be processed simultaneously when the Concurrent Action Processing feature is in use. Regardless of whether Concurrent Action Processing is being used, elements of Type CICSMAP cannot start processing until all elements of Type COPYBOOK are finished.
Processor Includes
CONPARMX and Compiler Options
Utility Parameters
Assembler Program Macros
Program Headers
COBOL Copybooks
Assembler Program Source
C Program Source
COBOL Program Source
JAVA Source
PL/1 Source
Linkage-Editor JCL
Data Base Binds
Define the Type Sequence Member to C1DEFLTS
To enable Type Sequencing, the Parmlib data set and the Type Sequence member must be defined to the Defaults table C1DEFLTS. The Parmlib data set contains the Type Sequence member. The C1DEFLTS table will not assemble correctly if the Type Sequence member is defined to C1DEFLTS, but the Parmlib is not defined. An empty Type Sequence member will force Type sequencing by Type name order.
To define the Parmlib data set and the Type Sequence file, add the PARMLIB= and TYPESEQMBR= parameters to C1DEFLTS and then assemble and link-edit it to your APF-authorized library as member C1DEFLTS.
Example: Define the Type Sequence member in C1DEFLTS
In the following example, the Parmlib data set and the Type Sequence member are defined in the C1DEFLTS table. The Parmlib data set name is BST.CASCMMF.PARMLIB and the Type sequence member is named ETYPESEQ.
The Environment Site Information panel displays Parmlib information on the second screen of the panel Site Information from the C1DEFLTS.
Verify the Type Sequence Member
After creating the Type Sequence member and identifying it to
in the C1DEFLTS table, you can test the syntax of the member.
Follow these steps:
  1. Launch an
    If the Type Sequence table has been defined correctly,
    starts. If there is a coding error in the table, console messages appear that identify the error. For example:
  2. Correct any errors, and then launch the CLIST again. When
    appears, open the Type Sequence display in foreground.
    The processing sequence displayed matches the sequence defined in the Type Sequence member.