Resource overrides file format

Use the following file format to specify the resource overrides that you want to apply.

General information

The resource overrides file is a configuration file that uses a subset of the YAML Version 1.2 format and must use a UTF-8 character encoding. The file must be located in the ussconfig/resourceoverrides directory, where ussconfig is the location that is specified by the USSCONFIG system initialization parameter, for example /var/cicsts/dfhconfig/resourceoverrides. The file name must be the name that is specified by the RESOVERRIDES system initialization parameter.

A sample resource overrides file, and a resource overrides JSON schema to use when you edit the resource overrides file, are provided. See Setting up a resource overrides configuration file.

To specify resource overrides, use YAML format block collections with lists (also known as sequences) and mappings (key-value pairs). The following information describes the YAML formatting that is supported in the resource overrides file.

YAML flow style notation for lists and mappings (use of indicator characters rather than indentation) is not supported.

The format is as follows:
schemaVersion: resourceOverrides/major.minor
resourceOverrides: 
- resource-type:
  - selector:
      attribute: value
      attribute:
        - condition-operator: value
    overrides:
      attribute: value
      attribute:
        - action-operator: value
The following list summarizes YAML format that is relevant to the resource definition overrides file. For more information about the YAML version 1.2 specification, see The Official YAML website.
  • Optionally, the YAML file can begin with three dashes to indicate the start of the document.
    ---
  • Use the YAML format for block collections. That is, use indentation for scope and begin each entry on its own line.
  • For indentation, use 2 or more spaces. You can indent lines by any number of spaces, but members of the same list or block must use the same indentation. Do not use tabs for indentation.
  • Each list entry starts on a new line, starts with a dash and a space, and is followed by a colon.
    - list-item:
  • Key-value pairs in a mapping are separated by a colon and a space.
    key: value
  • You can surround values with single ' or double " quotation marks to ensure that they are not processed as YAML file syntax.
  • Values can be up to 255 characters. You cannot split values across multiple lines; that is, you cannot use YAML syntax for multiline strings.
  • Each comment starts with a hashtag (#). For a comment on the same line as another entry, ensure that there is a space between the entry and the start of the comment.
    # Comment
      - list-item: # Comment about this list
  • Attribute values are case-sensitive. Other strings are case-insensitive. Where necessary, resource override processing converts attribute values to the appropriate case for CICS® processing.
  • Optionally, the YAML file can end with three dots to indicate the end of the document.
    ...

The maximum size of a resource overrides file is 1 MB.

Schema version

You use the schemaVersion mapping to specify the version of the resource overrides JSON schema that describes the required syntax for the resource overrides in the resource overrides file. All resource overrides that you specify in the resource overrides file must be supported by this version of the resource overrides JSON schema.

Specify the schemaVersion key, followed by the name and version number of the corresponding resource overrides JSON schema. The schema name must be resourceOverrides. The name and version number are separated by a forward slash (/). The schema version number is in the format major.minor, where major and minor are the same as the version number of the corresponding JSON schema resourceoverrides-major.minor.micro.json.

The schemaVersion mapping is compatible with changes to the .micro version number of the JSON schema. For example, schemaVersion: resourceOverrides/1.0 indicates that the resource overrides file is supported by the resourceoverrides-1.0.n.json schemas.

You must specify a schema version number that is supported by CICS TS beta. If a resource overrides file is shared across multiple CICS releases, the schema version must be supported for all those CICS releases.

CICS release JSON schema schemaVersion mapping
CICS TS 6.3 resourceoverrides-1.300.n.json

Latest version of schema that supports all changes made to resource definition attributes in this release.

schemaVersion: resourceOverrides/1.300
CICS TS 6.2 resourceoverrides-1.200.n.json

Improved version of schema which includes validation of all resource attributes and their values.

schemaVersion: resourceOverrides/1.200
CICS TS 6.1 resourceoverrides-1.100.n.json

Improved version of schema which includes validation of all resource attributes and their values.

schemaVersion: resourceOverrides/1.100
CICS TS 5.6 resourceoverrides-1.0.n.json

Basic schema which only validates resource types.

schemaVersion: resourceOverrides/1.0

Resource overrides

To specify the start of the resource overrides in the YAML file, specify the resourceOverrides key. This mapping is followed by the list of CICS resource types that you want to apply overrides to.

resourceOverrides:

To specify a resource overrides file that does not contain any resource types or override rules, you can specify a value of null or ~ for the mapping. Any content that follows must be commented out. For example:

resourceOverrides: null
#  - resource-type:
#     - override rules

Resource types

To specify the CICS resource types that you want to apply overrides to, specify each resource type as a list item after the resourceOverrides mapping. You can list a resource type more than once in the block. List all resource types at the same level in the file.

For the list of resource types that you can apply overrides to, see How it works: Resource definition overrides. For details of valid resource types, resource attributes, and attribute values that you use to specify resource overrides, see Resource definition attributes.

- resource-type:
For example:
- program:
    - override rules
- file:
    - override rules

Each resource type is followed by a nested list of one or more override rules.

Override rule

Each override rule consists of an optional selector mapping and an overrides mapping:
  • A selector mapping specifies which resources of the listed resource type to apply the overrides to.
  • An overrides mapping specifies one or more override actions to apply.

If you do not specify a selector, the overrides mapping applies to all resources of the listed resource type.

  - selector:
    overrides:

or

  - overrides:

Selector mapping (optional)

To specify a selector mapping, specify the selector key, followed by one or more conditions. The conditions specify attribute values to use to select resources, and are processed in the order that they are specified in the file. For a resource type with multiple conditions specified, all conditions must be satisfied to select the resources; that is, conditions are connected by and.

For a simple condition, use a nested attribute: value mapping.

  - selector:
      attribute: value

For conditions that use a condition operator, use a nested attribute followed by a nested list item for each condition-operator: value mapping.

  - selector:
      attribute: 
        - condition-operator: value
        - condition-operator: value
You can use the following condition operators:
is
Select the resources that have the specified attribute value.
literal
Select the resources that have the specified attribute value by using the literal value of the attribute. For example, an asterisk character * is not treated as a wildcard character.
literalNot
Select the resources that do not have the specified attribute value by using the literal value of the attribute. For example, an asterisk character * is not treated as a wildcard character.
not
Select the resources that do not have the specified attribute value.
You can create a list of condition operators to build up a detailed or specific selector.
A condition that is frequently useful is to specify the resource name to use as a selector:
  - selector:
      name: value
You can select resources that don't have a value set for a specified attribute by specifying an empty value or null string. A null string must be a valid value for that attribute, so this applies to most character attributes and a minority of CICS-value data area (CVDA) attributes, but not integer attributes.
  - selector:
      attribute: ""
In a condition (except for conditions that use the literal or literalNot condition operators), you can use the wildcard character * once in a character attribute value. If you start a value with a wildcard character, surround the value with single or double quotation marks (to differentiate it from a YAML alias). For example, the following values are valid:
name: '*ABC'
name: A*BC
The following values are not valid:
name: *ABC
name: A*B*C
The following examples show selector mappings:
- transaction:
  # Select all transactions starting with TR that have an initial program of MYPROG
  - selector:
      name: TR*
      program: MYPROG
- program:
  # Select all programs ending with TEST that are not in the group MYGRP1
  - selector:
      name: '*TEST'
      group:
        - not: MYGRP1
- enqmodel:
  # Select all enqmodel definitions with an enqname value of ENQ*
  - selector:  
      enqname: 
        - literal: ENQ*

Overrides mapping

To specify the overrides mapping, specify the overrides key, followed by one or more actions. The actions specify the attribute values to apply as overrides, and are processed in the order that they are specified in the file.

You cannot override a resource name or a group attribute.

For a set action, you can use a nested attribute: value mapping, or an action operator.

  - overrides:
      attribute: value

For actions that use an action operator such as set, prefix, or suffix, use a nested attribute followed by a nested list for each action-operator: value mapping. For the find and replace action, use a nested attribute followed by a nested list item for the pair of action-operator: value mappings.

  - overrides:
      attribute: 
        - action-operator: value
        - action-operator: value

You can specify the following operators in an action, depending on whether the attribute is a character attribute, an integer, or a CVDA.

set
You can set character attributes, integer attributes, and CVDAs in one of the following ways:
  • Use an attribute: value mapping.
  • After the attribute, use a nested list item for the action-operator: value mapping, where the action operator is set.
The following example sets a CVDA and an integer attribute. The first overrides mapping sets the CICS execution diagnostic facility (CEDF) on for programs. The second overrides mapping sets the purgecycle for DB2CONN resources to 5 minutes, 0 seconds:
- program:
    - overrides:
        cedf: YES
- db2conn:
    - overrides:
        purgecycle: 05,00
The following example also sets CEDF on for programs, but uses the set action operator.
- program:
    - overrides:
        cedf: 
          - set: YES
For attributes where it is valid to set a null string, you can remove any current attribute value by specifying an empty value "" or a null string. This applies to most character attributes and a minority of CVDAs, but not integer attributes. For example:
- transaction:
    - overrides:
        alias: ""    
For attributes which take a default value if not specified setting a null string will reset the default value. For example:
- transaction:
    - overrides:
        tranclass: ""    
will clear any value specified for transaction class and set the default value, e.g. DFHTCL00.

For a character attribute, you can use symbols and symbol substrings in the attribute value. See Symbols and symbol substrings.

For some integer attributes, it is valid to set specific character values. For example, SYSTEM is a valid value for the RUNAWAY attribute of a TRANSACTION resource, and NO is a valid value for some timeout attributes.

find and replace
You can use find and replace for character attributes.

After the attribute, use a nested list item for the pair of action-operator: value mappings, where the action operators are find and replace.

    - overrides:
        attribute: 
          - find: value
            replace: value
For example:
- urimap:
  # Modify the path for URIMAP resources to change all instances of prod to test
  - overrides:
      path:
        - find: prod
          replace: test

You can use symbols and symbol substrings in the attribute values. See Symbols and symbol substrings.

prefix
You can add a prefix to a character attribute with an existing value. You cannot prefix a null attribute value.

After the attribute, use a nested list item for the action-operator: value mapping, where the action operator is prefix.

  - overrides:
      attribute: 
        - prefix: value
For example:
- file:
  - overrides:
      dsname: 
        - prefix: TESTLPAR.

You can use symbols and symbol substrings in the attribute value. See Symbols and symbol substrings.

suffix
You can add a suffix to a character attribute with an existing value. You cannot suffix a null attribute value.

After the attribute, use a nested list item for the action-operator: value mapping, where the action operator is suffix.

  - overrides:
      attribute: 
        - suffix: value
For example:
- file:
  - overrides:
      dsname: 
        - suffix: .DEV

You can use symbols and symbol substrings in the attribute value. See Symbols and symbol substrings.

Symbols and symbol substrings

You can use symbols and symbol substrings in character attribute values in override mappings.

You can use one of the following symbols. Enclose the complete value in single or double quotation marks and enclose the symbol in double braces {{}}.
Symbol name Value
CICS_APPLID The application identifier of a CICS region
CICS_DEFAULT_USERID The CICS default user ID.
CICS_JOBNAME The name of the CICS job.
CICS_LPAR The name of a z/OS® LPAR for the CICS region.
CICS_REGION_USERID The CICS region user ID.
CICS_RELEASE CICS release, for example, 0760 for CICS TS beta.
CICS_SYSID The system identifier of a CICS region.
CICS_SYSPLEX The name of the current sysplex.
CICS_USSCONFIG The value of the USSCONFIG system initialization parameter.
CICS_USSHOME The value of the USSHOME system initialization parameter.
For example:
- file:
    - overrides:
        dsname: "{{CICS_APPLID}}.ZUSER.CATALOG.FILEA"
- file:
    - overrides:
        dsname: 
          - find: "{{ CICS_REGION_USERID }}"
            replace: "{{ CICS_APPLID }}"
You can specify a substring in a symbol to indicate specific characters in that symbol. Enclose the substring in brackets []. You can use one of the following formats:
  • [start:end]
  • [start::length]
start, end and length are valid index values for the symbol, in the range 0 - 254. Be aware that symbol indices use a zero origin, so [0:1] indicates the first two characters of a symbol. The following example uses the first two characters of the application identifier of a CICS region:
- transaction
    - overrides:
        tranclass:
          - prefix: "{{CICS_APPLID[0:1]}}"
The following example uses the third and fourth characters of the system identifier of a CICS region.
- file:
    - overrides:
        dsname: "USER{{CICS_SYSID[2::2]}}.ZUSER.CATALOG.FILEA"

Examples

schemaVersion: resourceOverrides/1.300
resourceOverrides: 
- program:
    # Set CEDF on for all programs in the group "MYGRP"
    - selector:
        name: '*'
        group: MYGRP 
      overrides:
        cedf: YES
    # Change CONCURRENCY from QUASIRENT to THREADSAFE for all programs, 
    # except those in the groups "MYGRP1" and "MYGRP2"
    - selector:
        group: 
          - not: MYGRP1
          - not: MYGRP2
        concurrency: QUASIRENT
      overrides:
        concurrency: THREADSAFE
    # Set CEDF on for all programs autoinstalled using the default autoinstall 
    # program model "DFHPGAPG" if defined in RDO group "DFHPGAIP"      
    - selector:
        name: DFHPGAPG
        group: DFHPGAIP 
      overrides:
        cedf: 
          - set: YES
- db2conn:
    # Set the PURGECYCLE attribute for the DB2CONN "DB2AAA" to 
    # 5 minutes and 0 seconds
    - selector:
        name: DB2AAA
      overrides:
        purgecycle: 05,00
- transaction:
    # Remove the ALIAS attribute for all transactions that start with the 
    # characters "TR"
    - selector:
        name: TR*
      overrides:
        alias: ""
    # Set the TRANCLASS attribute to "TCLTEST" for all transactions whose  
    # name start with the characters "tr" and end with "1" 
    - selector:
        name: tr*1
      overrides:
        tranclass: "TCLTEST"
    # Prefix the TRANCLASS attribute of all transactions with the first 
    # two characters of the CICS_APPLID
    - overrides:
        tranclass:
          - prefix: "{{CICS_APPLID[0:1]}}"
    # Change the value of the WAITTIME attribute to 2055 mins (1 day, 
    # 10 hours, 15 minutes) for the transaction "RUNA" in group "EXMP8"
    # if the current WAITTIME is 1563 mins (1 day, 2 hours and 3 minutes) 
    - selector:
        name: RUNA
        group: EXMP8
        waittime: 1,2,3
      overrides:
        waittime: 1,10,15
    # Set RUNAWAY attribute to 300 milliseconds for all transactions 
    # defined with default value of SYSTEM
    - selector:
        runaway: SYSTEM
      overrides:
        runaway: 300
- file:
    # Set the DSNAME attribute of FILE "FILEA" using the value of 
    # the APPLID symbol  
    - selector:
        name: FILEA
      overrides:
        dsname: "{{CICS_APPLID}}.FILEA" 
    # Prefix the DSNAME attribute of the FILE "FILEA" with the string 
    # "TESTLPAR."
    - selector:
        name: FILEA
      overrides:
        dsname: 
          - prefix: TESTLPAR.
    # Modify the DSNAME attribute of the FILE "FILEA" to change all 
    # instances of "EXAMPLE" to "MYEXMPL", prefix it with "MYCOPY." 
    # and suffix it with ".TEST"
    - selector:
         name: FILEA
      overrides:
        dsname:
          - find: EXAMPLE
            replace: MYEXMPL 
          - prefix: MYCOPY.
          - suffix: .TEST
    # Change a remote FILE named "REMFILE" to be a local file that 
    # uses the data set "DEV.CATALOG.FILEA" 
    - selector:
        name: REMFILE
      overrides:
        dsname: DEV.CATALOG.FILEA
        remotename: ""
        remotesystem: ""   
- jvmserver:
    # Set THREADLIMIT attribute for a JVMSERVER named TESTSERV to 5
    - selector:
        name: TESTSERV
      overrides:
        threadlimit: 5
- tsmodel:
    # Modify the PREFIX attribute for all TSMODEL resources defined in the 
    # group "EXMP6" with a LOCATION of MAIN to change all instances of 
    # "PROD" to "TEST"  
    - selector:
        name: TSMOD*
        group: EXMP6
        location: MAIN  
      overrides:
        prefix:
          - find: PROD
            replace: TEST
- sessions:
    # For all SESSION resources with MAXIMUM attribute set to the default
    # value of 01,00 change the value to to 99,99  
    - selector:
        maximum: 01,00
      overrides:
        maximum: 99,99
- enqmodel:
    # Select all ENQMODEL resources with an ENQNAME that equals "ENQ*" 
    # and change value to "MYENQ"
    - selector:  
        enqname: 
          - literal: ENQ*
      overrides: 
        enqname: MYENQ