

AWS Mainframe Modernization Service (Managed Runtime Environment experience) is no longer open to new customers. For capabilities similar to AWS Mainframe Modernization Service (Managed Runtime Environment experience) explore AWS Mainframe Modernization Service (Self-Managed Experience). Existing customers can continue to use the service as normal. For more information, see [AWS Mainframe Modernization availability change](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

# Configure the AWS Transform for mainframe managed application
<a name="ba-app-config"></a>

You can configure your application to include access to legacy utilities. You can customize additional properties as well. In order to understand what you can configure and where, refer the [Structure of AWS Transform for mainframe managed applications](applications-m2-other-resources-structure.md) section to understand the overall structure of an AWS Transform for mainframe modernized application.

**Topics**
+ [Structure of AWS Transform for mainframe managed applications](applications-m2-other-resources-structure.md)
+ [Configure access to utilities for managed applications](applications-m2-ba-utilities.md)
+ [Add configuration properties for the managed application with AWS Transform for mainframe engine](applications-m2-ba-config-props.md)

# Structure of AWS Transform for mainframe managed applications
<a name="applications-m2-other-resources-structure"></a>

If you use the AWS Transform for mainframe refactoring pattern, the AWS Transform for mainframe runtime engine expects the following structure in the folder specified by `app-location` in your application definition:

![\[The expected structure within the application-name folder.\]](http://docs.aws.amazon.com/m2/latest/userguide/images/ba-app-structure.png)


**config**  
Contains the YAML files for your project. These are the YAML files specific to your application, typically named something like `application-planetsdemo.yaml` and not the `application-main.yaml` file that AWS Mainframe Modernization supplies and sets up automatically for you.

**webapps**  
Contains the `war` files for your application. Those files are an output of the modernization process.

An application can also have the following optional folders:

jics/sql  
Contains the `initJics.sql` script that initializes the JICS database for your application.

scripts  
Contains application scripts, which you can also supply directly inside the `war` files.

sql  
Contains application SQL files, which you can also supply directly inside the `war` files.

lnk  
Contains application LNK files, which you can also supply directly inside the `war` files.

extra  
Contains jars that can provide additional capabilities for the modernized application.

## Managing an application's Java options
<a name="java-memory-management"></a>

To manage certain Java options for the application, add a properties file named `tomcat.properties` to the folder specified by `app-location`. This file can have three properties: `xms`, which specifies the minimum Java memory consumption, `xmx`, which specifies the maximum Java memory consumption, and `dnscachettl`, that manages the cache duration for dns resolutions. The following is an example of the contents of a valid `tomcat.properties` file. 

```
xms=512M
xmx=1G
dnscachettl=5
```

The values that you specify for  the first  two properties can be in any of the following units:
+ Bytes: don't specify a unit.
+ Kilobytes: append a K to the value.
+ Megabytes: append an M to the value.
+ Gigabytes: append a G to the value.

The value for the third property represents the cache duration in seconds, and can have value of -1 (cache forever), or can range from 0 (never cache) to 999. In the context of managed application deployments, the default value is -1.

# Configure access to utilities for managed applications
<a name="applications-m2-ba-utilities"></a>

When you refactor a mainframe application with AWS Transform for mainframe, you might need to provide support for various legacy platform utility programs, such as IDCAMS, INFUTILB, SORT, and so on, if your application depends on them. AWS Transform for mainframe refactoring provides this access with a dedicated web application that is deployed alongside modernized applications. This web application requires a configuration file, `application-utility-pgm.yml`, that you must provide. If you don't provide this configuration file, the web application can't deploy alongside your application and won't be available.

**Topics**
+ [Configuration properties](#applications-m2-ba-utilities-props)

This topic describes all the possible properties that you can specify in the `application-utility-pgm.yml` configuration file, along with their defaults. The topic describes both required and optional properties. The following example is a complete configuration file. It lists properties in the order that we recommend. You can use this example as a starting point for your own configuration file.

```
# If the datasource support mode is not static-xa, spring JTA transactions autoconfiguration must be disabled
 spring.jta.enabled: false
 logging.config: 'classpath:logback-utility.xml'
 
 # Encoding
 encoding: cp1047
 
 # Encoding to be used by INFUTILB and DSNUTILB to generate and read SYSPUNCH files
 sysPunchEncoding: cp1047
 
 # Utility database access
 spring.aws.client.datasources.primary.secret: `arn:aws:secretsmanager:us-west-2:111122223333:secret:business-FfmXLG`
 
 treatLargeNumberAsInteger: false
 
 # Zoned mode : valid values = EBCDIC_STRICT, EBCDIC_MODIFIED, AS400 
 zonedMode: EBCDIC_STRICT
 
 jcl.type: mvs
 
 # Unload properties 
 # For date/time: if use database configuration is enabled, formats are ignored
 # For nbi; use hexadecimal syntaxe to specify the byte value
 unload:
  sqlCodePointShift: 384
  nbi:
    whenNull: "6F"
    whenNotNull: "00"
  useDatabaseConfiguration: false
  format:
    date: MM/dd/yyyy
    time: HH.mm.ss
    timestamp: yyyy-MM-dd-HH.mm.ss.SSSSSS
  chunkSize:500
  fetchSize: 500
  varCharIsNull: false
  columnFiller: space  
 
 # Load properties 
 # Batch size for DSNUTILB Load Task
 load:
  sqlCodePointShift: 384
  batchSize: 500
  format:
    localDate: dd.MM.yyyy|dd/MM/yyyy|yyyy-MM-dd
    dbDate: yyyy-MM-dd
    localTime: 'HH:mm:ss|HH.mm.ss'
    dbTime: 'HH:mm:ss'
 
 table-mappings:
  TABLE_1_NAME : LEGACY_TABLE_1_NAME
  TABLE_2_NAME : LEGACY_TABLE_2_NAME
```

## Configuration properties
<a name="applications-m2-ba-utilities-props"></a>

You can specify the following properties in your configuration file.

**spring.jta.enabled**  
 (Optional) Controls whether JTA support is enabled. For utilities, we recommend that you set this value to `false`.  

```
spring.jta.enabled : false
```

**logging.config**  
 (Required) Specifies the path to the dedicated logger configuration file. We recommend that you use the name `logback-utility.xml` and provide this file as part of the modernized application. The common way to organize these files is to put all logger configuration files in the same place, usually in the subfolder `/config/logback` where `/config` is the folder that contains YAML configuration files. For more information, see [Chapter 3: Logback configuration](https://logback.qos.ch/manual/configuration.html) in the Logback documentation.   

```
logging.config : classpath:logback-utility.xml
```

**encoding**  
 (Required) Specifies the character set that the utility program uses. For most cases, when you migrate from z/OS platforms, this character set is an EBCDIC variant, and should match the character set that is configured for the modernized applications. Default if not set is `ASCII`.  

```
encoding : cp1047
```

**sysPunchEncoding**  
 (Optional) Specifies the character set that INFUTILB and DSNUTILB use to generate and read SYSPUNCH files. If you use the SYSPUNCH files from the legacy platform as they are, this value should be an EBCDIC variant. Default if not set is `ASCII`.  

```
sysPunchEncoding : cp1047
```

### Data source configuration
<a name="applications-m2-ba-utilities-props-data"></a>

Some database-related utilities, such as LOAD and UNLOAD, require access to a target database through a data source. Like other data source definitions within AWS Mainframe Modernization, this access requires that you use AWS Secrets Manager. The properties that point to the proper secrets in Secrets Manager are as follows:

#### Primary data source
<a name="applications-m2-ba-utilities-props-data-primary"></a>

This is the primary business application database.

**spring.aws.client.datasources.primary.secret**  
 (Optional) Specifies the secret in Secrets Manager that contains the data source properties.  

```
spring.aws.client.datasources.primary.secret: datasource-secret-ARN
```

**spring.aws.client.datasources.primary.dbname**  
(Optional) Specifies the target database name if the database name isn't provided directly in the database secret, with the `dbname` property.   

```
spring.aws.client.datasources.primary.dbname: target-database-name
```

**spring.aws.client.datasources.primary.type**  
(Optional) Specifies the fully qualified name of the connection pool implementation to use. The default value is `com.zaxxer.hikari.HikariDataSource`.  

```
spring.aws.client.datasources.primary.type: target-datasource-type
```
If the type of the primary data source is `com.zaxxer.hikari.HikariDataSource`, you can specify additional properties as follows:

**spring.datasource.primary.[property\$1name]**  
(Optional) You can use this format to specify extra properties for configuring a primary data source connection pool implementation.  
The following is an example for a primary data source of type `com.zaxxer.hikari.HikariDataSource`.  

```
spring:
   datasource:
       primary:
         autoCommit: XXXX
         maximumPoolSize: XXXX
         keepaliveTime: XXXX
         minimumIdle: XXXX
         idleTimeout: XXXX
         connectionTimeout: XXXX
         maxLifetime: XXXX
```

#### Other utility data sources
<a name="applications-m2-ba-utilities-props-data-other"></a>

In addition to the primary data source, you can provide other utility data sources.

**spring.aws.client.utility.pgm.datasources.names**  
(Optional) Specifies the list of utility data source names.  

```
spring.aws.client.utility.pgm.datasources.names: dsname1, dsname2, dsname3
```

**spring.aws.client.utility.pgm.datasources.[dsname].secret**  
(Optional) Specifies the secret ARN in SSM that hosts the data source properties. Provide [dsname] in the list of names specified in `spring.aws.client.utility.pgm.datasources.names`.  

```
spring.aws.client.utility.pgm.datasources.dsname1.secret: datasource-secret-ARN
```

**spring.aws.client.utility.pgm.datasources.[dsname].dbname**  
(Optional) Specifies the target database name if the database name isn't provided directly in the database secret by using the `dbname` property. Provide [dsname] in the list of names specified in `spring.aws.client.utility.pgm.datasources.names`.  

```
spring.aws.client.utility.pgm.datasources.dsname1.dbname: target-database-name
```

**spring.aws.client.utility.pgm.datasources.[dsname].type**  
(Optional) Specifies the fully qualified name of the connection pool implementation to use. The default value is `com.zaxxer.hikari.HikariDataSource`. Provide [dsname] in the list of names specified in `spring.aws.client.utility.pgm.datasources.names`.  

```
spring.aws.client.utility.pgm.datasources.dsname1.type: target-datasource-type
```
If the utility data source type is `com.zaxxer.hikari.HikariDataSource`, you can provide additional properties as follows:

**spring.datasource.[dsname].[property\$1name]**  
(Optional) Specifies a collection of extra properties to configure a utility data source connection pool implementation. Provide [dsname] in the list of names specified in `spring.aws.client.utility.pgm.datasources.names`. Specify the properties in the following format: `property_name : value`  
The following is an example for additional utility data sources of type `com.zaxxer.hikari.HikariDataSource`:   

```
spring:
   datasource:
       dsname1:
         connectionTimeout: XXXX
         maxLifetime: XXXX
       dsname2:
         connectionTimeout: XXXX
         maxLifetime: XXXX
       dsname3:
         connectionTimeout: XXXX
         maxLifetime: XXXX
```

**treatLargeNumberAsInteger**  
 (Optional) Related to Oracle database engine specifics and DSNTEP2/DSNTEP4 utilities usage. If you set this flag to true, large numbers coming from the Oracle database (NUMBER (38,0)) are treated as integers. Default: `false`  

```
treatLargeNumberAsInteger : false
```

**zonedMode**  
(Optional) Sets the zoned mode to encode or decode zoned data types. This setting influences the way sign digits are represented. The following values are valid:  
+ *EBCDIC\$1STRICT*: Default. Use strict definition for signs handling. Depending on whether the character set is EBCDIC or ASCII, the sign digit representation uses the following characters: 
  + EBCDIC characters that correspond to bytes (`Cn+Dn`) to represent positive and negative digit ranges (`+0` to `+9`, `-0` to `-9`). The characters are displayed as `{`,`A` to `I`, `}`, `J` to `R`
  + ASCII characters that correspond to bytes (`3n+7n`) to represent positive and negative digit ranges (`+0` to `+9`, `-0` to `-9`). The characters are displayed as `0` to `9`, `p` to `y`
+ *EBCDIC\$1MODIFIED*: Use a modified definition for signs handling. For both EBDIC and ASCII, the same list of characters represent the sign digits, that is, `+0` to `+9` mapped to `{` \$1 `A` to `I` and `-0` to `-9` mapped to `}` \$1 `J` to `R`. \$1 
+ *AS400*: Use for modernized legacy assets that come from iSeries (AS400) platforms.

```
zonedMode:EBCDIC_STRICT
```

**jcl.type**  
 (Optional) Indicates the legacy type of modernized JCL scripts. The IDCAMS utility uses this setting to tailor the return code if the invoking JCL is of type `vse`. Valid values are as follows:  
+ `mvs` (Default)
+ `vse`

```
jcl.type : mvs
```

### Database Unload utilities related properties
<a name="applications-m2-ba-utilities-props-unload"></a>

 Use these properties to configure utilities that unload database tables to data sets. All of the following properties are optional.

 This example shows all the possible unload properties.

```
# Unload properties 
 # For date/time: if use database configuration is enabled, formats are ignored
 # For nbi; use hexadecimal syntaxe to specify the byte value
 unload:
 sqlCodePointShift: 0
 nbi:
 whenNull: "6F"
 whenNotNull: "00"
 useDatabaseConfiguration: false
 format:
 date: MM/dd/yyyy
 time: HH.mm.ss
 timestamp: yyyy-MM-dd-HH.mm.ss.SSSSSS 
 chunkSize: 0
 fetchSize: 0
 varCharIsNull: false
 columnFiller: space
```

**sqlCodePointShift**  
 (Optional) Specifies an integer value that represents the SQL code point shift used on data. The default is 0. This means that no code point shifting is made. Align this setting with the SQL code point shift parameter used for modernized applications. When code point shifting is in use, the most common value for this parameter is 384.  

```
unload.sqlCodePointShift: 0
```

**nbi**  
 (Optional) Specifies a null indicator byte. This is a hexadecimal value (as a string) added to the right of the data value. The two possible values are as follows:  
+ *whenNull*: Add the hexadecimal value when the data value is null. Default is `6``. Sometimes the high value `FF` is used instead.

  ```
  unload.nbi.whenNull: "6F"
  ```
+ *whenNotNull*: Add the hexadecimal value when the data value is not null, but the column is nullable. Default is `00` (low value).

  ```
  unload.nbi.whenNotNull: "00"
  ```

**useDatabaseConfiguration**  
 (Optional) Specifies date and time formatting properties. This is used to deal with date/time objects in UNLOAD queries. Default is `false`.  
+ If set to `true`, uses the `pgmDateFormat`, `pgmTimeFormat`, and `pgmTimestampFormat` properties from the main configuration file (`application-main.yml`).
+ If set to `false`, uses the following date and time formatting properties:
  + `unload.format.date`: Specifies a date formatting pattern. Default is `MM/dd/yyyy`.
  + `unload.format.time`: Specifies a time formatting pattern. Default is `HH.mm.ss`.
  + `unload.format.timestamp`: Specifies a timestamp formatting pattern. Default is `yyyy-MM-dd-HH.mm.ss.SSSSSS`.

**chunkSize**  
 (Optional) Specifies the size of data chunks used to create SYSREC data sets. These data sets are the target of the data set unload operation, with parallel operations. Default is `0` (no chunks).  

```
unload.chunkSize:0
```

**fetchSize**  
 (Optional) Specifies the data fetch size. The value is the number of records to fetch at one time when a data chunks strategy is used. Default: `0`.  

```
unload.fetchSize:0
```

**varCharIsNull**  
 (Optional) Specifies how to handle a non nullable varchar column with blank content. Default is `false`.  
 If you set this value to `true`, the column content is treated as an empty string for unload purposes, instead of a single space string. Set this flag to `true` for the Oracle database engine case only.  

```
unload.varCharIsNull: false
```

**columnFiller**  
 (Optional) Specifies the value to use for padding unloaded columns in varchar columns. Possible values are space or low values. Default is space.  

```
unload.columnFiller: space
```

### Database Load related properties
<a name="applications-m2-ba-utilities-props-load"></a>

 Use these properties to configure utilities that load data set records into a target database, for example, DSNUTILB. All of the following properties are optional.

 This example shows all of the possible load properties.

```
# Load properties 
 # Batch size for DSNUTILB Load Task
 load:
 sqlCodePointShift: 384
 batchSize: 500
 format:
 localDate: dd.MM.yyyy|dd/MM/yyyy|yyyy-MM-dd
 dbDate: yyyy-MM-dd
 localTime: HH:mm:ss|HH.mm.ss
 dbTime: HH:mm:ss
 
 table-mappings:
 TABLE_1_NAME : LEGACY_TABLE_1_NAME
 TABLE_2_NAME : LEGACY_TABLE_2_NAME
```

**sqlCodePointShift**  
 (Optional) Specifies an integer value that represents the SQL code point shift that is used on data. Defaults to 0, which means that applications make no code point shifting. Align this setting with the SQL code point shift parameter used for modernized applications. When you use code point shifts, the most common value for this parameter is 384.  

```
load.sqlCodePointShift : 384
```

**batchSize**  
 (Optional) Specifies an integer value that represents the number of records to treat before you send an actual batch statement to the database. Defaults to 0.  

```
load.batchSize: 500
```

**format**  
 (Optional) Specifies the date and time formatting patterns to use for date/time conversions during the database load operations.  
+ `load.format.localDate`: Local date formatting pattern. This defaults to `dd.MM.yyyy|dd/MM/yyyy|yyyy-MM-dd`.
+ `load.format.dbDate`: Database date formatting pattern. This defaults to `yyyy-MM-dd`.
+ `load.format.localTime`: Local time formatting pattern. This defaults to `HH:mm:ss|HH.mm.ss`.
+ `load.format.dbTime`: Database time formatting pattern. This defaults to `HH:mm:ss`.

**table-mappings**  
 (Optional) Specifies a collection of customer-provided mappings between legacy and modern table names. The DSNUTILB utility program consumes these mappings.  
Specify the values in the following format: *MODERN\$1TABLE\$1NAME : LEGACY\$1TABLE\$1NAME*  
Here is an example:  

```
table-mappings:
 TABLE_1_NAME : LEGACY_TABLE_1_NAME
 TABLE_2_NAME : LEGACY_TABLE_2_NAME
 ...
 TABLE_*N*_NAME : LEGACY_TABLE_*N*_NAME
```
When the utility application starts, it explicitly logs all provided mappings.

# Add configuration properties for the managed application with AWS Transform for mainframe engine
<a name="applications-m2-ba-config-props"></a>

You can add a file in the `config` folder for your refactored application that will give you access to new features in the AWS Transform for mainframe runtime engine. You must name this file `user-properties.yml`. This file doesn’t replace the application definition but extends it. This topic describes the properties you can include in the `user-properties.yml` file.

**Note**  
You can’t change some parameters because they are controlled either by AWS Mainframe Modernization or by the application definition. All parameters defined in the application definition for your application have priority over the parameters you specify in `user-properties.yml`.

For more information about the structure of refactored applications, see [Structure of AWS Transform for mainframe managed applications](applications-m2-other-resources-structure.md).

The following diagram shows where to locate the `user-properties.yml` file within the structure of the AWS Transform for mainframe sample application, PlanetsDemo.

```
PlanetsDemo-v1/
   ├─ config/
   │  ├─ application-PlanetsDemo.yml
   │  ├─ user-properties.yml
   ├─ jics/
   ├─ webapps/
```

## Configuration properties reference
<a name="ba-config-props"></a>

This is the list of available properties. All parameters are optional.

**Topics**
+ [Gapwalk application properties](#gapwalk-app-props)
+ [Gapwalk batchscript properties](#gapwalk-batch-props)
+ [Gapwalk Blugen properties](#gapwalk-blugen-props)
+ [Gapwalk CL command properties](#gapwalk-cl-props)
+ [Gapwalk CL runner properties](#gapwalk-cl-runner-props)
+ [Gapwalk JHDB properties](#gapwalk-jhdb-props)
+ [Gapwalk JICS properties](#gapwalk-jics-props)
+ [Gapwalk runtime properties](#gapwalk-runtime-props)
+ [Gapwalk utility program properties](#gapwalk-utility-props)
+ [Other properties](#other-props)

### Gapwalk application properties
<a name="gapwalk-app-props"></a>

**bluesam.fileLoading.commitInterval**  
Optional. The Blusam commit interval.  
Type: number  
Default: 100000

**card.encoding**  
Optional. Card encoding: to be used with `useControlMVariable`.  
Type: string  
Default: CP1145

**checkinputfilesize**  
Optional. Specifies whether to release a check if the file size is a multiple of record size.  
Type: boolean  
Default: false

**database.cursor.overflow.allowed**  
Optional. Specifies whether to allow the cursor overflow. Set to `true` to perform a next call on the cursor whatever its position. Set to `false` to check whether the cursor is at the last position before performing a next call on cursor. Only enable if cursor is SCROLLABLE (SENSITIVE or INSENSITIVE)  
Type: boolean  
Default: true

**dataSimplifier.onInvalidNumericData**  
Optional. How to react when decoding invalid numeric data. Allowed values are `reject`, `toleratespaces`, `toleratespaceslowvalues`, `toleratemost`.   
Type: string  
Default: reject

**defaultKeepExistingFiles**  
Optional. Specifies whether to set the dataset default previous value.  
Type: boolean  
Default: false

**disposition.checkexistence**  
Optional. Specifies whether to release a check on file existence for Dataset with DISP SHR or OLD.  
Type: boolean  
Default: false

**externalSort.threshold**  
Optional. The sort threshold: determines when the system should switch from in-memory to external merge sorting (using temporary files on the file system). If not specified (default=`null`), the threshold is set to half of the available memory at each new sort task. To estimate the available memory, a call to System.gc() is performed.  
Type: datasize  
Default: null  
`externalSort.threshold: 12MB`

**blockSizeDefault**  
Optional. The default block size to be used for BDW bytes.  
Type: number  
Default: 32760  
`blockSizeDefault: 32760`

**forceHR**  
Optional. Specifies whether to use Human Readable SYSPRINT, either on console or file output.  
Type: boolean  
Default: false

**forcedDate**  
Optional. Forces a specific date and time in the database. Use only during development and testing.  
Default: null  
`forcedDate: 2022-08-26T12:59:58.123456+01:57`

**frozenDate**  
Optional. Freezes the date and time in the database. Use only during development and testing.  
Default: false  
`frozenDate: false`

**ims.messages.extendedSize**  
Optional. Specifies whether to set the extendedSize on ims messages.  
Type: boolean  
Default: false

**lockTimeout**  
Optional. The timeout in milliseconds of a transaction when unable to acquire a lock within a specified timeframe.  
Type: number  
Default: 500

**mapTransfo.prefixes**  
Optional. List of prefixes to be used when transforming controlM variables. Each one separated by comma.  
Type: string  
Default: &,@,%%

**query.useConcatCondition**  
Optional. Specifies whether key condition is built by key concatenation or not.  
Type: boolean  
Default: false

**rollbackOnRTE**  
Optional. Specifies whether to rollback implicit run unit transaction on runtime exceptions.  
Type: boolean  
Default: false

**sctThreadLimit**  
Optional. The thread limit for triggering scripts.  
Type: number  
Default: 5

**sqlCodePointShift**  
Optional. The sql code point shift. Shifts the codepoint for control characters that we might encounter when migrating legacy rdbms data to a modern rdbms. For example, you could specify `384` to match unicode character `\u0180`.  
Type: number  
Default: 0

**sqlIntegerOverflowAllowed**  
Optional. Specifies whether to allow the SQL integer overflow, meaning whether placing larger values in the host variable is allowed.  
Type: boolean  
Default: false

**stepFailWhenAbend**  
Optional. Specifies whether to raise an abend if a step fails or completes execution.  
Type: boolean  
Default: true

**stopExecutionWhenProgNotFound**  
Optional. Specifies whether to stop running if a program isn't found. If set to `true`, interrupts the run if a program is not found.  
Type: boolean  
Default: true

**system.date.format**  
Optional. Specifies the system date format.   
Type: string  
Default: MDY

**system.date.separator**  
Optional. Specifies the system date separator.   
Type: string  
Default: /

**uppercaseUserInput**  
Optional. Specifies whether user input must be in uppercase.   
Type: boolean  
Default: true

**useControlMVariable**  
Optional. Specifies whether to use control-M specification for variable replacement.  
Type: boolean  
Default: false

**jcl.checkpoint.expireTimeout**  
Optional. Specifies time duration to retain JCL checkpoints in the persistence provider or in-memory registry.  
Type: number  
Default: -1

**jcl.checkpoint.expireTimeoutUnit**  
Optional. Specifies time duration unit for the `jcl.checkpoint.expireTimeout` property. Supported enum constant values: `java.util.concurrent.TimeUnit`.  
Type: string  
Default: SECONDS

### Gapwalk batchscript properties
<a name="gapwalk-batch-props"></a>

**encoding**  
Optional. The encoding used in batchscript projects (not with groovy). Expects a valid encoding `CP1047`, `IBM930`, `ASCII`, `UTF-8`...  
Type: string  
Default: ASCII

### Gapwalk Blugen properties
<a name="gapwalk-blugen-props"></a>

**managers.trancode**  
Optional. The dialog manager trancode mapping. Allows you to map a JICS transaction code to a dialog manager. Expected format is `trancode1:dialogManager1;trancode2:dialogManager2;`.   
Type: string  
Default: null  
`managers.trancode: OR12:MYDIALOG1`

### Gapwalk CL command properties
<a name="gapwalk-cl-props"></a>

**commands-off**  
Optional. List of commands to turn off, separated by comma. Allowed values are `PGM_BASIC`, `RCVMSG`, `SNDRCVF`, `CHGVAR`, `QCLRDTAQ`, `RTVJOBA`, `ADDLFM`, `ADDPFM`, `RCVF`, `OVRDBF`, `DLTOVR`, `CPYF`, `SNDDTAQ`. Useful when you want to disable or overwrite an existing program. `PGM_BASIC` is a specific AWS Transform for mainframe Runtime program designed for debugging purposes.  
Type: string  
Default: null

**spring.datasource.primary.jndi-name**  
Optional. The primary Java Naming And Directory Interface (JNDI) datasource.  
Type: string  
Default: jdbc/primary

**zonedMode**  
Optional. The mode for encoding or decoding zoned data types. Allowed values are `EBCDIC_STRICT` / `EBCDIC_MODIFIED` / `AS400`.  
Type: string  
Default: EBCDIC\$1STRICT

### Gapwalk CL runner properties
<a name="gapwalk-cl-runner-props"></a>

**cl.configuration.context.encoding**  
Optional. The encoding of CL files. Expects a valid encoding `CP1047`, `IBM930`, `ASCII`, `UTF-8`...  
Type: string  
Default: CP297

**cl.zonedMode**  
Optional. The mode for encoding or decoding control language (CL) commands. Allowed values are `EBCDIC_STRICT` / `EBCDIC_MODIFIED` / `AS400`.  
Type: string  
Default: EBCDIC\$1STRICT

### Gapwalk JHDB properties
<a name="gapwalk-jhdb-props"></a>

**ims.programs**  
Optional. List of IMS programs to use. Separate each parameter with a semicolon (`;`) and each transaction with a comma (`,`). For example: `ims.programs: PCP008,PCT008;PCP054,PCT054;PCP066,PCT066;PCP068,PCT068;`  
Type: string  
Default: null

**jhdb.checkpointPath**  
Optional. If `jhdb.checkpointPersistence` is not `none` then this parameter allows you to set up the checkpoint persistence path (checkpoint.dat file storage location), all the checkpoints data contained in the registry are serialized and backed up in a file (checkpoint.dat) located in provided folder. Note that only checkpoint data (scriptId, stepId, database position, and checkpoint area) are concerned by this backup.  
Type: string  
Default: file:./setup/

**jhdb.checkpointPersistence**  
Optional. The checkpoint persistence mode. Allowed values are `none` / `add` / `end`. Use `add` to persist checkpoints when a new one is created and added to the registry. Use `end` to persist checkpoint at server shutdown. Any other values disable the persistence. Note that each time a new checkpoint is added to the registry, all the existing checkpoints will be serialized and the file will be erased. It is not an append to the existing data in the file. So depending on the number of checkpoints, it can have some effect on performance.  
Type: string  
Default: none

**jhdb.configuration.context.encoding**  
Optional. The JHDB (Java Hierarchical Database) encoding. Expects a valid encoding string `CP1047`, `IBM930`, `ASCII`, `UTF-8`...  
Type: string  
Default: CP297

**jhdb.identificationCardData**  
Optional. Used to hardcode some "operator identification card data" to the MID field designated by the CARD parameter.  
Type: string  
Default: ""

**jhdb.lterm**  
Optional. Allow you to force a common logical terminal ID in the case of an IMS emulation. If not set then sessionId is used.  
Type: string  
Default: null

**jhdb.metadata.extrapath**  
A configuration parameter that specifies an extra, runtime-specific root folder for psbs and dbds folders.  
Type: string  
Default: file:./setup/  
Currently, for deployment constraints, you must copy your dbds and psbs directories in the config directory of your application or in a subdirectory of the config directory: e.g., config/setup   

```
config
|- setup
   |- dbds 
   |- psbs
```
 and set in application-jhdb.yml  
`jhdb.metadata.extrapath: file: ./config/setup/`

**jhdb.navigation.cachenexts**  
Optional. The cache duration (in milliseconds) used in hierarchical navigation for an RDBMS.  
Type: number  
Default: 5000

**jhdb.query.limitJoinUsage**  
Optional. Specifies whether to use the limit join usage parameter on RDBMS graphs.  
Type: boolean  
Default: true

**jhdb.use-db-prefix**  
Optional. Specifies whether to enable a database prefix in hierarchical navigation for an RDBMS.  
Type: boolean  
Default: true

### Gapwalk JICS properties
<a name="gapwalk-jics-props"></a>

**jics.data.dataJsonInitLocation**  
Optional. Location of the json file prepared by the Analyzer from parsing CSD, and used to initialize the jics database,  
Type: string  
Default: ""

**jics.db.dataScriptLocation**  
Optional. Location of the initJics.sql script, prepared by Analyzer from parsing CSD exports from the mainframe.  
Type: string  
Default: ""

**jics.db.dataTestQueryLocation**  
Optional. Location of a sql script containing a single sql query that is expected to return a count of objects (for example: counting number of records in the jics program table). If the count equals 0, database will be loaded using the `jics.db.dataScriptLocation` script, otherwise database load will be skipped.  
Type: string  
Default: ""

**jics.db.ddlScriptLocation**  
Optional. The Jics ddl script location. Allows you to initiate the jics database schema using a .sql script.  
Type: string  
Default: ""  
`jics.db.ddlScriptLocation: ./jics/sql/jics.sql`

**jics.db.schemaTestQueryLocation**  
Optional. Location of the sql file that should contain a unique query that returns the number of objects in the jics schema (if any).  
Type: string  
Default: ""

**jics.runUnitLauncherPool.enable**  
Optional. Specifies whether to activate the run unit launcher pool in JICS.  
Type: boolean  
Default: false

**jics.runUnitLauncherPool.size**  
Optional. The run unit launcher pool size in JICS.  
Type: number  
Default: 20

**jics.runUnitLauncherPool.validationInterval**  
Optional: The validation interval of the run unit launcher pool in JICS, expressed in milliseconds.  
Type: number  
Default: 1000

**jics.queues.sqs.region**  
Optional. The AWS Region for Amazon SQS, used in JICS. It is advised to be set the same region of the deployed application for performance, but it is not mandatory.  
Type: string  
Default: eu-west-1

**jics.xa.agent.timeout**  
Optional. Defines the maximum duration for the xa agent responsible for managing distributed transactions, to complete its operations.  
Type: number  
Default: null

**mq.queues.sqs.region**  
Optional. The AWS Region for the Amazon SQS MQ service.  
Type: string  
Default: eu-west-3

**taskExecutor.allowCoreThreadTimeOut**  
Optional. Specifies whether to allow core threads to time out in JCIS. This enables dynamic growing and shrinking even in combination with a non-zero queue (since the max pool size will only grow once the queue is full).  
Type: boolean  
Default: false

**taskExecutor.corePoolSize**  
Optional. When a transaction in a terminal is initiated via a groovy script, a new thread is created. Use this parameter to setup the core pool size.  
Type: number  
Default: 5

**taskExecutor.maxPoolSize**  
Optional. When a transaction in a terminal is initiated via a groovy script, a new thead is created. Use this parameter to setup the max pool size (max number of parallel threads).  
Type: number  
Default: 10

**taskExecutor.queueCapacity**  
Optional. When a transaction in a terminal is initiated via a groovy script, a new thead is created. Use this parameter to setup the queue size. (= maximum number of pending transactions when `taskExecutor.maxPoolSize` is reached)  
Type: number  
Default: 50

### Gapwalk runtime properties
<a name="gapwalk-runtime-props"></a>

**cacheMetadata**  
Optional. Specifies whether to cache database metadata.  
Type: boolean  
Default: true

**check-groovy-file**  
Optional. Specifies whether to check groovy files content before registering.  
Type: boolean  
Default: true

**databaseStatistics**  
Optional. Specifies whether to allow SQL builders to collect and display statistics information.  
Type: boolean  
Default: false

**dateTimeFormat**  
Optional. The dateTimeFormat describes how to spill database date time timestamp type into data simplifier entities. Allowed values are `ISO` / `EUR` / `USA` / `LOCAL`  
Type: string  
Default: ISO

**dbDateFormat**  
Optional. The database target date format.  
Type: string  
Default: yyyy-MM-dd

**dbTimeFormat**  
Optional. The database target time format.  
Type: string  
Default: HH:mm:ss

**dbTimestampFormat**  
Optional. The database target timestamp format.  
Type: string  
Default: yyyy-MM-dd HH:mm:ss.SSSSSS

**fetchSize**  
Optional. The fetchSize value for cursors. Use when fetching data using chunks by load/unload utils.  
Type: number  
Default: 10

**forceDisableSQLTrimStringType**  
Optional. Specifies whether to disable trim of all sql string parameters.  
Type: boolean  
Default: false

**localDateFormat**  
Optional. List of local date formats. Separate each format with `|`.  
Type: string

**localTimeFormat**  
Optional. List of local time formats. Separate each format with `|` .  
Type: string

**localTimestampFormat**  
Optional. List of local timestamp formats. Separate each format with `|`.  
Type: string  
Default:

**pgmDateFormat**  
Optional. The date time format used in the programs.  
Type: string  
Default: yyyy-MM-dd

**pgmTimeFormat**  
Optional. The time format used for pgm (programs) execution.  
Type: string  
Default: HH.mm.ss

**pgmTimestampFormat**  
Optional. The timestamp format.  
Type: string  
Default: yyyy-MM-dd-HH.mm.ss.SSSSSS

### Gapwalk utility program properties
<a name="gapwalk-utility-props"></a>

**jcl.type**  
Optional. `.jcl` file type. Allowed values are `jcl` / `vse`. The IDCAMS utility PRINT/REPRO commands return 4 if the file is empty for non-vse jcl.  
Type: string  
Default: mvs

**listcat.variablelengthpreprocessor.enabled**  
Optional. Specifies whether to enable the variable length preprocessor for the LISTCAT command.  
Type: boolean  
Default: false

**listcat.variablelengthpreprocessor.type**  
Optional. The type of objects contained in the listcat file, if you enable `listcat.variablelengthpreprocessor.enabled`. Allowed values are `rdw` / `bdw`.  
Type: string  
Default: rdw

**load.batchSize**  
Optional. The load utility batch size.  
Type: number  
Default: 0

**load.format.dbDate**  
Optional. The load utility database format to use.  
Type: string  
Default: yyyy-MM-dd

**load.format.dbTime**  
Optional. The load utility database time to use.  
Type: string  
Default: HH:mm:ss

**load.format.localDate**  
Optional. The load utility local date format to use.  
Type: string  
Default: dd.MM.yyyy\$1dd/MM/yyyy\$1yyyy-MM-dd

**load.format.localTime**  
Optional. The load utility local time format to use.  
Type: string  
Default: HH:mm:ss\$1HH.mm.ss

**load.sqlCodePointShift**  
Optional. The SQL code pointshift for load utility. Runs the shifting characters process. Required when your target database from DB2 is Postgresql.  
Type: number  
Default: 0

**sysPunchEncoding**  
Optional. The syspunch encoding character set. Supported values are `Cp1047` / `ASCII`.  
Type: string  
Default: ASCII

**treatLargeNumberAsInteger**  
Optional. Specifies whether to treat large numbers as `Integer`. They are treated as `BigDecimal` by default.  
Type: boolean  
Default: false

**unload.chunkSize**  
Optional. Chunk size used for unload utility.  
Type: number  
Default: 0

**unload.columnFiller**  
Optional. The unload utility column filler.  
Type: string  
Default: space

**unload.fetchSize**  
Optional. Allows you to tune the fetch size when handling cursors in the unload utility.  
Type: number  
Default: 0

**unload.format.date**  
Optional. If `unload.useDatabaseConfiguration` is enabled, the date format to use in the unload utility.  
Type: string  
Default: MM/dd/yyyy

**unload.format.time**  
Optional. If `unload.useDatabaseConfiguration` is enabled, the time format to use in the unload utility.  
Type: string  
Default: HH.mm.ss

**unload.format.timestamp**  
Optional. If `unload.useDatabaseConfiguration` is enabled, the timestamp format to use in the unload utility.  
Type: string  
Default: yyyy-MM-dd-HH.mm.ss.SSSSSS

**unload.nbi.whenNotNull**  
Optional. The Null Byte Indicator (nbi) value to add when value from database is not null.  
Type: hexadecimal  
Default: 00

**unload.nbi.whenNull**  
Optional. The Null Byte Indicator (nbi) value to add when value from database is null.  
Type: hexadecimal  
Default: 6F

**unload.nbi.writeNullIndicator**  
Optional. Specifies whether to write out the null indicator in the unload output file.  
Type: boolean  
Default: false

**unload.sqlCodePointShift**  
Optional. The SQL code pointshift for unload utility. Runs the shifting characters process. Required when your target database from DB2 is Postgresql.  
Type: number  
Default: 0

**unload.useDatabaseConfiguration**  
Optional. Specifies whether to use the date or time configuration from application-main.yml in unload utility.  
Type: boolean  
Default: false

**unload.varCharIsNull**  
Optional. Use this parameter in INFTILB program, if set to `true` then all not nullable fields with blank (space) values returns an empty string.  
Type: boolean  
Default: false

### Other properties
<a name="other-props"></a>

**qtemp.cleanup.threshold.hours**  
Optional. To specify when `qtemp.dblog` is enabled. The db partition lifetime (in hours).  
Type: number  
Default: 0

**qtemp.dblog**  
Optional. Whether to enable QTEMP Database logging.  
Type: boolean  
Default: false

**qtemp.uuid.length**  
Optional. The QTEMP unique id length.  
Type: number  
Default: 9

**quartz.scheduler.stand-by-if-error**  
Optional. Specifies whether to trigger job execution if the job scheduler is in standby mode. If true, When enabled job execution is not triggered.  
Type: boolean  
Default: false

**warmUpCache**  
Optional. Specifies whether to load all datacom table data into a warm up cache at server start.  
Type: boolean  
Default: false