

AWS 大型机现代化服务（托管运行时环境体验）不再向新客户开放。有关类似于 AWS 大型机现代化服务（托管运行时环境体验）的功能，请浏览 AWS 大型机现代化服务（自我管理体验）。现有客户可以继续正常使用该服务。有关更多信息，请参阅[AWS 大型机现代化可用性变更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为大型机 AWS 运行时的转换启用属性
<a name="ba-runtime-key-value"></a>

在 Spring Boot 应用程序中，我们可以在 `application-main.yml` 配置文件中定义不同类型的属性，例如侦听端口、数据库连接等。您可以使用此页面来了解适用于大型机运行时的 Trans AWS form 的可用属性以及如何启用这些属性。

**Topics**
+ [YML 表示法](#ba-runtime-key-value-yml)
+ [快速入门/用例](#ba-runtime-key-value-use-cases)
+ [主应用程序的可用属性](#ba-runtime-key-value-main)
+ [可选 Web 应用程序的可用属性](#ba-runtime-key-value-web)
+ [客户端应用程序的可用属性](#ba-runtime-key-value-client)
+ [配置 API 访问日志](#ba-runtime-api-access-logging)

## YML 表示法
<a name="ba-runtime-key-value-yml"></a>

在以下文档中，属性（例如 `parent.child1.child2=true`）写为如下 YAML 格式。

```
 parent:
  child1:
    child2: true
```

## 快速入门/用例
<a name="ba-runtime-key-value-use-cases"></a>

以下用例显示了适用的键和值的示例。
+ 默认 application-main.yml

  ```
  ----
  #### DEFAULT APPLICATION-MAIN.YML FILE      #####
  #### SHOWING USEFUL CONFIGURATION ELEMENTS #####
  #### SHOULD BE OVERRIDDEN AND EXTERNALIZED   #####
  
  #################################
  ##### Logging configuration #####
  #################################
  logging:
    config: classpath:logback-main.xml
    level.org.springframework.beans.factory.support.DefaultListableBeanFactory : WARN
  
  ################################
  ##### Spring configuration #####
  ################################
  spring:
    quartz:
      auto-startup: false
      scheduler-name: Default
      properties:
        org.quartz.threadPool.threadCount: 1
    jta:
      enabled: false
      atomikos.properties.maxTimeout : 600000 
      atomikos.properties.default-jta-timeout : 100000 
    jpa:
  # DISABLE OpenEntityManagerInViewInterceptor   
      open-in-view: false
      # Fix Postgres JPA Error:
      # Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented.
      properties.hibernate.temp.use_jdbc_metadata_defaults : false
  #####################################
  ##### Jics tables configuration #####
  #####################################
  
      # The dialect should match the jics datasource choice
      database-platform : org.hibernate.dialect.PostgreSQLDialect # org.hibernate.dialect.PostgreSQLDialect, org.hibernate.dialect.SQLServerDialect
      
      # those properties can be used to create and initialize jics tables automatically.
  #    properties:
  #      hibernate:
  #      globally_quoted_identifiers: true
  #        hbm2ddl:
  #           import_files_sql_extractor : org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor
  #           import_files : file:./setup/initJics.sql
  #           auto : create
  
  ##########################
  ###### Level 2 cache #####
  ##########################
  #        cache:
  #          use_second_level_cache: true
  #          use_query_cache: true
  #          region:
  #            factory_class: org.hibernate.cache.ehcache.EhCacheRegionFactory
  #      javax:
  #        persistence:
  #          sharedCache:
  #            mode: ENABLE_SELECTIVE
  ##########################
  ###### Redis settings #####
  ##########################
    session:
      store-type: none #redis
      
  # Secret manager configuration for global Redis cache
      aws:
        client:
          gapwalk:
            redis:
              secret: arn:aws:secretsmanager:XXXX
  
  #########################################
  ##### JICS datasource configuration #####
  #########################################
  datasource:
    jicsDs:
      driver-class-name : org.postgresql.Driver # org.postgresql.Driver, com.microsoft.sqlserver.jdbc.SQLServerDriver
      url: jdbc:postgresql://localhost/jics # jdbc:postgresql://localhost:5433/jics, jdbc:sqlserver://localhost\SQLEXPRESS:1434;databasename=jics;
      username: jics
      password: jics
      type : org.postgresql.ds.PGSimpleDataSource # org.postgresql.ds.PGSimpleDataSource, com.microsoft.sqlserver.jdbc.SQLServerDataSource
  
  #####################################################
  ##### Embedded Bluesam datasource configuration #####
  #####################################################
    bluesamDs :
      driver-class-name : org.postgresql.Driver
      url : jdbc:postgresql://localhost/bluesam
      username : bluesam
      password : bluesam
      type : org.postgresql.ds.PGSimpleDataSource
  
  ##########################################
  ##### Embedded Bluesam configuration #####
  ##########################################
  bluesam :
    cache : ehcache
    persistence : pgsql
    ehcache:
      resource-pool:
        size: 4GB
    write-behind:
      enabled: true
    pgsql :
      dataSource : bluesamDs
  
  #########################
  ##### Jics settings #####
  #########################
  rabbitmq.host: localhost
  jics: 
    cache: false #redis
    resource-definitions.store-type: jpa # default value: jpa, other possible value: redis
    
  jics.disableSyncpoint : false
  #jics.initList:
  #jics.parameters.datform: DDMMYY
  #jics.parameters.applid: VELOCITY
  #jics.parameters.sysid: CICS
  #jics.parameters.eibtrmid: TERM
  #jics.parameters.userid: MYUSERID
  #jics.parameters.username: MYUSERNAME
  #jics.parameters.opid: XXX
  #jics.parameters.cwa.length: 0
  #jics.parameters.netname: MYNETNAME
  #jics.parameters.jobname: MJOBNAME
  #jics.parameters.sysname: SYSNAME
  
  ##############################################
  ##### Jics RunUnitLauncher pool settings #####
  ##############################################
  #jics.runUnitLauncherPool.enable: false
  #jics.runUnitLauncherPool.size: 20
  #jics.runUnitLauncherPool.validationInterval: 1000
  
  #########################
  ##### Jhdb settings #####
  #########################
  #jhdb.lterm: LTERMVAL
  #jhdb.identificationCardData: SomeIDData
  
  ###################################
  ##### DateHelper configuration ####
  ###################################
  #forcedDate: "2013-08-26T12:59:58+01:57"
  
  #############################
  ##### Sort configuration ####
  #############################
  #externalSort.threshold: 256MB
  
  ###################################
  ##### Server timeout (10 min)  ####
  ###################################
  spring.mvc.async.request-timeout: 600000
  
  ###############################
  ##### DATABASE STATISTICS  ####
  ###############################
  databaseStatistics : false
  
  ######################
  ##### CALLS GRAPH ####
  ######################
  callGraph : false
  
  ####################################
  #####     SSL configuration    #####
  ####################################
  gapwalk.ssl.enabled : true
  gapwalk.ssl.trustStore : "./config/clientkey.jks"
  gapwalk.ssl.trustStorePassword : mysslcertifpassword
   
  ##################################
  ##### MQ settings #####
  ##################################
  mq.queues: jmsmq
  mq.queues.jmsMQQueueManagers[0].jmsMQQueueManager: QM1
  mq.queues.jmsMQQueueManagers[0].jmsMQAppName: Gapwalk
  mq.queues.jmsMQQueueManagers[0].jmsMQChannel: DEV.APP.SVRCONN
  mq.queues.jmsMQQueueManagers[0].jmsMQHost: localhost
  mq.queues.jmsMQQueueManagers[0].jmsMQPort: 1415
  mq.queues.jmsMQQueueManagers[0].jmsMQUserid: app
  mq.queues.jmsMQQueueManagers[0].jmsMQSSLCipher: "*TLS12ORHIGHER"
  mq.queues.jmsMQQueueManagers[1].jmsMQQueueManager: QM2
  mq.queues.jmsMQQueueManagers[1].jmsMQAppName: Gapwalk
  mq.queues.jmsMQQueueManagers[1].jmsMQChannel: DEV.APP.SVRCONN
  mq.queues.jmsMQQueueManagers[1].jmsMQHost: localhost
  mq.queues.jmsMQQueueManagers[1].jmsMQPort: 1415
  mq.queues.jmsMQQueueManagers[1].jmsMQUserid: app
  
  #########################################################
  ##### Configuration properties for JMS MQ connection ####
  #########################################################
  mq.queues.jms.connectionfactory.borrow-connection-timeout: 31 # Timeout, in seconds, for borrowing connections from the pool.
  mq.queues.jms.connectionfactory.ignore-session-transacted-flag: true # Whether or not to ignore the transacted flag when creating a session.
  mq.queues.jms.connectionfactory.local-transaction-mode: false # Whether or not to include local transactions.
  mq.queues.jms.connectionfactory.maintenance-interval: 62 # The time, in seconds, between runs of the pool's maintenance thread.
  mq.queues.jms.connectionfactory.max-idle-time: 63 # The time, in seconds, after which connections are cleaned up from the pool.
  mq.queues.jms.connectionfactory.max-lifetime: 0 # The time, in seconds, that a connection can be pooled for before being destroyed. 0 denotes no limit.
  mq.queues.jms.connectionfactory.max-pool-size: 1 # The maximum size of the pool. This property will be overwritten by mq.queues.jmsMQQueueManagers[N].jmsMQMaxPoolSize property (if provided).
  mq.queues.jms.connectionfactory.min-pool-size: 1 # The minimum size of the pool.
  mq.queues.jms.connectionfactory.reap-timeout: 0 # The reap timeout, in seconds, for borrowed connections. 0 denotes no limit.
  
  
  ###############################
  ##### SQL SHIFT CODE POINT ####
  ###############################
  # Code point 384 match unicode character \u0180
  sqlCodePointShift : 384 
  
  ###############################
  ##### LOCK TIMEOUT RECORD  ####
  ###############################
  # Blu4IV record lock timeout 
  lockTimeout : 100
  
  ##############################
  ##### REPORTS OUTPUT PATH ####
  ##############################
  reportOutputPath: reports
  
  ##############################
  ##### TASK EXECUTOR       ####
  ##############################
  taskExecutor: 
    corePoolSize: 5
    maxPoolSize: 10
    queueCapacity: 50
    allowCoreThreadTimeOut: false
    
  ##############################
  ##### PROGRAM NOT FOUND   ####
  ##############################
  stopExecutionWhenProgNotFound: false
  
  ######################################################
  #####  DISP DEFAULT VALUE (to be removed one day) ####
  ######################################################
  defaultKeepExistingFiles: true
  
  ######################################################
  #####  BLOCKSIZE DEFAULT VALUE  ####
  ######################################################
  #blockSizeDefault: 32760
  
  #####################################
  #####  JOBQUEUE CONFIGURATION    ####
  #####################################
  jobqueue:
    api.enabled: false
    impl: none # possible values: quartz, none
    schedulers:  # list of schedulers
      -
        name: queue1
        threadCount: 5
      -
        name: queue2
        threadCount: 5
        
  ################################################################################
  ##### QUERY BUILDING                                                          ##
  # useConcatCondition : false by default 
  # if true, in the query, the where condition is build with key concatenation  ##
  ################################################################################
  # query.useConcatCondition: true
  
  ########################################
  #####  JCL Batch Restart Mechanism  ####
  ########################################
  jcl:
  checkpoint:
  enabled: false
  #expireTimeout: -1
  #expireTimeoutUnit: SECONDS # Supported values: java.util.concurrent.TimeUnit
  #provider: redis
  
  ##############################
  #####  System parameters  ####
  ##############################
  system.date.format:MDY  
  system.date.separator: "/"
  
  #############################################################
  #####  Database metadata schema inclusion configuration  ####
  #############################################################
  gapwalk:
    database:
      metadata:
         schema-inclusion:
            enabled: false
            schemas:
              global:
                - "SCHEMA1"
                - "SCHEMA2"
  
  ##############################
  #####  URL configuration  ####
  ##############################
  gapwalk.post.script.mediatype.json: false
  
  ########################################
  #####  CBLQDA parameters  ####
  ########################################
  gapwalk.cobol.cblqda.enabled: false
  ----
  ```
+ 在 LISTCAT 命令中使用长度可变的文件

  ```
  [**/*.*]
  encoding=IBM930
  reencoding=false
  
  [global]
  listcat.variablelengthpreprocessor.enabled=true
  listcat.variablelengthpreprocessor.type=rdw
  # use "rdw" if your .listcat file contains a set of records (RDW)
  # use "bdw" if your .listcat file contains a set of blocks (bdw)
  ```
+ 在 LOAD/UNLOAD 实用程序中提供空字节指示器值

  ```
  # Unload properties 
  # For date/time: if use database configuration is enabled, formats are ignored
  # For nbi; use hexadecimal syntax to specify the byte value
  # - When the value is null in database : the value dumped to the file is filled by low value characters and the NBI is
  # equal to the byte 6F (the ? character)
  # - When the value is not null in database and the column is nullable: the NBI is equal to the byte 00 (low value) and NOT
  # equal to the byte 40 (space)
  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
  ```

## 主应用程序的可用属性
<a name="ba-runtime-key-value-main"></a>

此表提供了 key/values 参数的详尽视图。

**注意**  
如果您要迁移到 5.1.0 或更高版本并使用默认行为的 bluesam： openWarmUp   
的默认值`bluesam.openWarmUp`已从`true`更改为 `false`
要保持现有行为，必须明确设置 `bluesam.openWarmUp=true`


| Key | Type | 默认 值 | 说明 | 发行版 | 
| --- | --- | --- | --- | --- | 
| `system.date.format` | 字符串  | MDY | 系统日期格式 DATFMT。 | --- | 
| `system.date.separator` | 字符串  | / | 系统日期分隔符 DATSEP。<br />可能的值包括斜杠 (`/`)、破折号 (`—`)、句点 (`.`)、逗号 (`、`) 或空白 (``)。值需要用双引号 `""`指定。 | 5.17.0 | 
| `logging.config` | 路径 | classpath:logback-main.xml | 用于引用 logback 配置文件的标准密钥。其他标准日志记录密钥也可用。 |  | 
| `spring.jta.enabled` | 布尔值 | false | 标准密钥。如果数据源支持模式不是 static-xa，则必须禁用 Spring JTA 事务自动配置。 |  | 
| `datasource.jicsDs` \+ -`driver-class-name` \+ -`url` \+ -`username` \+ -`password` \+ -`type` | 带子键的标准 Spring 数据源 |  | 包含 Jics 数据库的连接信息。或者，强烈建议使用 AWS 密钥，如[JICS 数据库](ba-runtime-config-app-secrets.md#jics-database)中所述。 |  | 
| `jildb.datasource` \+ -`driver-class-name` \+ -`url` \+ -`username` \+ -`password` | 带子键的标准 Spring 数据源 |  | 包含 Jics 数据库的连接信息。 |  | 
| `jildb.backend` | 字符串 |  | 指定 Jildb 后端中使用的数据库类型，例如 Oracle。 |  | 
| `jildb.record-hold-timeout` | int | 10000 | 指定 Jildb 中记录保存机制的等待超时时间（以毫秒为单位）。 |  | 
| `datasource.bluesamDs` \+ -`driver-class-name` \+ -`url` \+ -`username` \+ -`password` \+ -`type` | 带子键的标准 Spring 数据源 |  | 包含Blusam数据库的连接信息。或者，强烈建议使用 AWS 密钥，如[Blusam 数据库](ba-runtime-config-app-secrets.md#blusam-database)中所述。 |  | 
| `blu4iv.userspace.pageSize` | int | 4096 | 指定用于为用户空间分配存储空间的页面大小。在任何给定时间，用户空间的大小始终是该指定数字的倍数。 | 4.10.0 | 
| `blu4iv.userspace.store-type` | 字符串 | memory | 指定用于用户空间注册表的存储类型。支持的值是内存和 redis。如果未提供存储类型，则默认使用内存。 | 4.10.0 | 
| `blu4iv.userspace.redis.*` | 支持的 Redis 属性 |  | 为用户空间 redis 存储指定配置属性，请参阅[大型机运行时 AWS 转换中可用的 Redis 缓存属性](ba-runtime-redis-configuration.md)。 | 4.10.0 | 
| `blu4iv.userspace.batchThreshold` | int | 1 | 指定在用户空间上执行的更新或设置操作的次数，之后用户空间将保留在外部数据存储库中。 | 5.75.0 | 
| `blu4iv.dataaccess.useOldDaoDesign` | 布尔值 | false | 一个全局标志，用于确定应用程序是使用旧的 DAO 架构还是新的 DAO 架构。这取决于 DAO 是使用旧设计还是使用新设计生成的。 |  | 
| `bluesam.disabled` | 布尔值 | false | 是否Blusam完全禁用。 |  | 
| `bluesam.cache` | 字符串 |  | 如果未设置，则不会使用Blusam缓存。可能的值（缓存实现）是 ehcache 和 redis ()。[Redis 缓存属性](ba-runtime-redis-configuration.md#ba-runtime-redis-caches-properties) |  | 
| `bluesam.openWarmUp` | 布尔值 | false | 指定在打开期间是否缓存任何 bluesam 数据集。<br />**警告：5.1.0 版本中的重大更改**<br />**-默认值从更改`true`为`false`。** | 5.1.0 | 
| `bluesam.fileList` | String[] |  | 指定打开期间要缓存的 bluesam 数据集列表。<br />**注意：**<br />**-此参数仅在设置`bluesam.openWarmUp`为时才有效`false`。** | 5.1.0 | 
| `bluesam.maxBluesamDisablingThreadpoolSize` | 数字 | 10 | 指定用于禁用 bluesam 数据集进行批处理的最大线程池大小。 | 4.5.0 | 
| `bluesam.bluesamStatusPollingInterval` | 数字 | 1000 | 指定轮询 bluesam 状态以检查在线活动时，每次迭代之间等待的时间（以毫秒为单位）。 | 4.5.0 | 
| `bluesam.maxBluesamStatusPollingRetry` | 数字 | 3 | 指定轮询 bluesam 状态失败时的最大重试次数。 | 4.5.0 | 
| `bluesam.checkBluesamStatus` | 布尔值 | false | 指定是否在访问 bluesam 数据集之前检查其状态。 | 4.5.0 | 
| `bluesam.prefetchWindowSize` | int | 1000 | 指定要预取并在内存中缓存以优化 Redis 缓存的记录数。此属性仅在使用 Redis 缓存时有效。 |  | 
| `bluesam.prefetchWindowMultiples` | int | 5 | 指定预取窗口大小的乘数，以确定最大预取窗口容量。最大容量的计算公式为`prefetchWindowSize × prefetchWindowMultiples`。此属性仅在使用 Redis 缓存时有效。 |  | 
| `bluesam.sizesCleanUpThreshold` | int | 1000 | 在并发多线程写入期间，大型数据集（LargeKSD、LargeESDS）的每个数据集在内部偏移跟踪映射中保留的最大条目数。当映射超过此阈值时，会将其修剪为最近的 10 个条目，以防止堆耗尽，同时保留足够的条目以避免并发线程 NullPointerException 访问。如果在大容量大型数据集批量加载期间观察到堆压，请降低此值。 |  | 
| `spring.aws.client.bluesam.redis.secret` | 字符串 | null | 指定 Bluesam Redis 缓存的凭证密钥 ARN，请参阅 [AWS 针对大型机运行时机密进行转换](ba-runtime-config-app-secrets.md)。 |  | 
| `spring.aws.client.bluesam.locks.redis.secret` | 字符串 | null | 指定 Bluesam 锁 Redis 缓存的凭证密钥 ARN，请参阅 [AWS 针对大型机运行时机密进行转换](ba-runtime-config-app-secrets.md)。 |  | 
| `forcedDate` | 字符串 |  | 强制将日期（如果有）更改为提供的日期。 |  | 
| `clcommand.rtvmbrd.hasHeader` | 字符串 | true | 指定文件是否包含在计算行数时不应包含的标题。 |  | 
| `frozenDate` | 布尔值 | true | 指定是否冻结日期。仅在设置了 `forcedDate` 时适用。 |  | 
| `externalSort.threshold` | 数据大小（例如：12 MB） |  | 排序阈值：确定系统何时应使用文件系统上的临时文件从内存中的合并排序切换到外部合并排序。如果未指定 (default=`null`)，则阈值将设置为每个新排序任务中可用内存的一半。为了估计可用内存，需要调用 system.gc ()。 |  | 
| `blockSizeDefault` | 数字 | 32760 | 用于 BDW 字节的默认区块大小。 |  | 
| `jics.parameters.datform` | 字符串 | MMDDYY | 日期形式。 |  | 
| `jics.initList` | 字符串 |  | 初始化 JICS 列表，用逗号分隔。指定时，该键定义列表中以逗号分隔的名称，以便在 Apache Tomcat 启动时在 CICS 列表中激活。示例值：`$UUU,DFH$IVPL,PEZ1`。这将级联到这些列表中包含的组及其基础资源定义，之后会对运行时可见。默认为空。 |  | 
| `jics.parameters.applid` | 字符串 | VELOCITY | 用于标识 JICS 中的应用程序的 appid（至少 4 个字符，无最大长度限制）。 |  | 
| `jics.parameters.sysid` | 字符串 | CICS | 系统标识 (SYSID)。 |  | 
| `jics.parameters.eibtrmid` | 字符串 | TERM | 终端标识符（最多 4 个字符，最少 1 个字符）。 |  | 
| `jics.parameters.userid` | 字符串 |  | 用户 ID（最多 8 个字符，无最小字符数限制）。如果未提供任何值（默认为空白），则使用 HTTP 会话 ID 作为用户 ID。 |  | 
| `jics.parameters.username` | 字符串 | MYUSERNAME | 用户 ID（最多 10 个字符，最少 1 个字符）。 |  | 
| `jics.parameters.netname` | 字符串 | MYNETNAME | 网络名称（最多 8 个字符，最少 1 个字符）。 |  | 
| `jics.parameters.opid` | 字符串 | XXX | 3 个字符的操作员标识。 |  | 
| `jics.parameters.jobname` | 字符串 | MJOBNAME | 作业名称。 |  | 
| `jics.parameters.sysname` | 字符串 | SYSNAME |  AS400 系统名称（sysname）。 |  | 
| `jics.parameters.cwa.length` | 数字 | 0 | 公共工作区（CWA）长度。 |  | 
| `jics.parameters.charset` | 字符串 | CP037 | JICS 全球使用的字符集。 |  | 
| `jics.parameters.tsqimpl` | 字符串 | bluesam | JICS 临时存储队列 (TSQ) 实现（允许的值为 `bluesam`/`memory`/`redis`） |  | 
| `jics.queues.ts.redis.*` | 支持的 Redis 属性 |  | 指定 JICS TS 队列 Redis 服务器的配置属性，请参阅 [支持的 Redis 属性](ba-runtime-redis-configuration.md#ba-runtime-redis-supported-properties)。 |  | 
| `spring.aws.client.jics.queues.ts.redis.secret` | 字符串 | null | 指定 JICS TS Queues Redis 服务器的凭证密钥 ARN，请参阅 [AWS 针对大型机运行时机密进行转换](ba-runtime-config-app-secrets.md)。 |  | 
| `lockTimeout` | 数字 | 500 | 锁定超时，以毫秒为单位。 |  | 
| `sqlCodePointShift` | 数字 |  | 可选。sql 代码点转换。对在将遗留 RDBMS 数据迁移到现代 RDBMS 时可能遇到的控制字符的代码点进行转换。例如，您可以指定 `384` 来匹配 Unicode 字符 `\u0180`。 |  | 
| `sqlIntegerOverflowAllowed` | 布尔值 | false | 指定是否允许 SQL 整数溢出，即是否允许在主机变量中放置更大的值。 |  | 
| `database.cursor.overflow.allowed` | 布尔值 | true | 指定是否允许游标溢出。设置为 `true` 时，无论游标位置如何，均可在游标处执行下一次调用。设置为 `false` 时，会在游标处执行下一次调用之前检查游标是否位于最后一个位置。仅在游标可滚动（敏感或不敏感）的情况下将其启用。 |  | 
| `reportOutputPath` | 字符串 | `/reports` | 报告输出路径。 |  | 
| `server.servlet.session.tracking-modes` | 字符串 | Cookie | 指定要使用的会话跟踪模式。可能的值为`url`、`cookie`、`ssl`。可以指定多个值，用逗号分隔。注意：在 Tomcat 上部署时，需要`cookies=false`在 context.xml 中进行设置，因为 Tomcat 优先配置跟踪模式。 |  | 
| `server.servlet.session.timeout` | 字符串 | 30m | 指定会话超时持续时间。示例：`60s`（60 秒）、`4m`（4 分钟）、`4h`（4 小时）。 |  | 
| `spring.session.store-type` | 字符串 | none | 高可用性环境的会话缓存。可能的值为 `none` 或 `redis`。默认值为 `none`。 |  | 
| `stopExecutionWhenProgNotFound` | 布尔值 | true | 指定在找不到程序时是否停止运行。如果设置为 `true`，则在找不到程序时中断运行。 |  | 
| `forceHR` | 布尔值 | false | 指定是否在控制台或文件输出上使用人类可读的 SYSPRINT。 |  | 
| `rollbackOnRTE` | 布尔值 | false | 指定是否在运行时异常时回滚隐式运行单元事务。 |  | 
| `sctThreadLimit` | 长整数 | 5 | 用于触发脚本的线程限值。 |  | 
| `dataSimplifier.onInvalidNumericData` | 字符串 | reject | 解码无效的数字数据时如何应对。允许的值包括：`reject`、`toleratespaces`、`toleratespaceslowvalues`、`toleratemost`。默认值为 `reject`。 |  | 
| `dataSimplifier.numproc` | 字符串 | PFD | numproc 编译器规范。允许的值为`PFD`//`NOPFD``MIG`/。默认值为 `PFD`。 |  | 
| `dataSimplifier.doubleFloatingType` | 字符串 | IEEE\_754 | 双浮点类型是用于对浮点数进行编码和解码的格式。允许的值为`IEEE_754`/`HFP`（对于十六进制浮点格式）。默认值为 `IEEE_754`。 | 4.7.0 | 
| `filesDirectory` | 字符串 |  | 批处理 input/output 文件的目录。 |  | 
| `ims.messages.extendedSize` | 布尔值 | false | 指定是否在 IMS 消息上设置扩展的大小。 |  | 
| `defaultKeepExistingFiles` | 布尔值 | false | 指定是否设置数据集的默认先前值。 |  | 
| `jics.db.ddlScriptLocation` | 字符串 |  | Jics DDL 脚本位置。支持您使用 .sql 脚本启动 Jics 数据库架构。默认情况下为空。例如 `./jics/sql/jics.sql`。 |  | 
| `jics.db.schemaTestQueryLocation` | 字符串 |  | sql 文件的位置，该文件应包含唯一查询，且该查询返回 jics 架构中对象的数量（如果有）。 |  | 
| `jics.db.dataScriptLocation` | 字符串 |  | 定义用于初始化 JICS 数据库的 SQL 脚本的路径。接受以逗号分隔的文件和目录列表，允许指定多个脚本和文件夹。 |  | 
| `jics.db.dataTestQueryLocation` | 字符串 |  | 包含单个 sql 查询的 sql 脚本的位置，该查询应返回对象计数（例如：计算 jics 程序表中的记录数）。如果计数等于 0，则将使用 `jics.db.dataScriptLocation` 脚本加载数据库，否则将跳过数据库加载。 |  | 
| `jics.data.dataJsonInitLocation` | 字符串 |  |  |  | 
| `jics.xa.agent.timeout` | 数字 |  |  |  | 
| `query.useConcatCondition` | 布尔值 | false | 指定键条件是否通过串联键来构建。 |  | 
| `system.qdecfmt` | 字符串 |  |  |  | 
| `disposition.checkexistence` | 布尔值 | false | 指定是否针对配置 DISP SHR 或 OLD 的数据集检查文件是否存在。 |  | 
| `useControlMVariable` | 布尔值 | false | 指定是否使用 control-M 规范进行变量替换。 |  | 
| `card.encoding` | 字符串 | CP1145 | 卡片编码：与 `useControlMVariable` 一起使用。 |  | 
| `mapTransfo.prefixes` | 字符串 | &,@,%% | 转换 controlM 变量时要使用的前缀列表。每一个前缀均用逗号隔开。 |  | 
| `checkinputfilesize` | 布尔值 | false | 指定在文件大小为记录大小倍数的情况下是否要进行检查。 |  | 
| `stepFailWhenAbend` | 布尔值 | true | 指定在步骤失败或完成执行时是否引发异常中止。 |  | 
| `returnHttp5xxResponseForFailedSyncJob` | 布尔值 | false | 指定是否针对同步作业执行失败返回 500 系列的 HTTP 响应代码。 | 4.10.0 | 
| `bluesam.fileLoading.commitInterval` | 数字 | 100000 | bluesam 提交间隔。 |  | 
| `uppercaseUserInput` | 布尔值 | true | 指定用户输入是否必须采用大写形式。 |  | 
| `jhdb.lterm` | 字符串 |  | 允许您在进行 IMS 仿真的情况下强制使用通用的逻辑终端 ID。如果未设置，则使用会话 ID。 |  | 
| `jhdb.identificationCardData` | 字符串 |  | 用于将某些“操作员识别卡数据”硬编码到 CARD 参数指定的 MID 字段。默认为空白，没有输入限制。 |  | 
| `encoding` | 字符串 | ASCII | 项目中使用的编码（不在 groovy 文件中）。预期的有效编码包含 `CP1047`、`IBM930`、`ASCII`、`UTF-8`... |  | 
| `cl.configuration.context.encoding` | 字符串 | CP297 | CL 文件的编码。预期的有效编码包含 `CP1047`、`IBM930`、`ASCII`、`UTF-8`... 默认值为 `CP297`。 |  | 
| `cl.zonedMode` | 字符串 | EBCDIC\_STRICT | 对控制语言 (CL) 命令进行编码或解码的模式。允许的值包括：`EBCDIC_STRICT`、`EBCDIC_MODIFIED`、`AS400`。 |  | 
| `ims.programs` | 字符串 |  | 要使用的 IMS 程序列表。用分号 (`;`) 分隔每个参数，用逗号 (`,`) 分隔每个事务。例如：`PCP008,PCT008;PCP054,PCT054;PCP066,PCT066;PCP068,PCT068;` |  | 
| `jhdb.configuration.context.encoding` | 字符串 | CP297 | Java 分层数据库 (JHDB) 编码。预期的有效编码字符串包含 `CP1047`、`IBM930`、`ASCII`、`UTF-8`... |  | 
| `jhdb.metadata.extrapath` | 字符串 | file:./setup/ | 用于为 psbs 和 dbds 文件夹指定一个特定于运行时的额外根文件夹的配置参数。 |  | 
| `jhdb.checkpointPersistence` | 字符串 | none | 检查点持久性模式。允许的值包括：`none`、`add`、`end`。使用 `add` 可在创建新检查点并将其添加到注册表后保留该检查点。使用 `end` 可在服务器关闭时保留检查点。任何其他值都会禁用持久性。请注意，每次向注册表中添加新的检查点时，所有现有的检查点都将被序列化并且文件会被擦除，而不是添加到文件中现有数据中。这样可能会对性能产生一些影响，具体取决于检查点的数量。 |  | 
| `jhdb.checkpointPath` | 字符串 | file:./setup/ | 如果 `jhdb.checkpointPersistence` 不是 `none`，则此参数允许您设置检查点持久性路径（checkpoint.dat 文件存储位置），注册表中包含的所有检查点数据都将序列化并备份到所提供文件夹的文件 (checkpoint.dat) 中。请注意，此备份仅涉及检查点数据（scriptId、stepId、数据库位置和检查点区域）。 |  | 
| `jhdb.navigation.cachenexts` | 数字 | 5000 | RDBMS 分层导航中使用的缓存持续时间（以毫秒为单位）。 |  | 
| `jhdb.use-db-prefix` | 布尔值 | true | 指定是否在 RDBMS 的分层导航中启用数据库前缀。 |  | 
| `jhdb.query.limitJoinUsage` | 布尔值 | true | 指定是否在 RDBMS 图形上使用限制联接使用参数。 |  | 
| `taskExecutor.corePoolSize` | 数字 | 5 | 当通过 groovy 脚本启动终端中的事务时，会创建一个新线程。可以使用此参数设置核心池大小。 |  | 
| `taskExecutor.maxPoolSize` | 数字 | 10 | 当通过 groovy 脚本启动终端中的事务时，会创建一个新线程。使用此参数设置池的最大大小（并行线程的最大数量）。 |  | 
| `taskExecutor.queueCapacity` | 数字 | 50 | 当通过 groovy 脚本启动终端中的事务时，会创建一个新线程。使用此参数设置队列大小。（= 达到 `taskExecutor.maxPoolSize` 时待处理事务的最大数量） |  | 
| `taskExecutor.allowCoreThreadTimeOut` | 布尔值 | false | 指定是否允许核心线程在 JCIS 中超时。即使与非零队列结合使用，也可以实现动态增长和缩小（因为只有在队列已满后，池最大大小才会增长）。 |  | 
| `jics.runUnitLauncherPool.enable` | 布尔值 | false | 指定是否在 JICS 中激活运行单元启动器池。 |  | 
| `jics.runUnitLauncherPool.size` | 数字 | 20 | JICS 中的运行单元启动器池大小。 |  | 
| `jics.runUnitLauncherPool.validationInterval` | 数字 | 1000 | 每次运行调整池大小的任务之间的间隔。 |  | 
| `jics.runUnitLauncherPool.parallelism` | 数字 | 2 | 当调整任务运行时，用于在队列中生成缺失实例的线程数。 |  | 
| `context.preconstruct.enable` | 布尔值 | false | 指定是否激活程序上下文的预构造。 |  | 
| `context.preconstruct.frequencyInMillis` | 数字 | 100 | 每次运行调整池大小的任务之间的间隔。 |  | 
| `context.preconstruct.parallelism` | 数字 | 5 | 当调整任务运行时，用于在队列中生成缺失实例的线程数。 |  | 
| `context.preconstruct.minInstances` | 数字 | 2 | 首次需要上下文时将创建的实例数量。 |  | 
| `spring.aws.application.credentials` | 字符串 | null | 从 JICS 的 AWS 凭证配置文件中加载凭证。 |  | 
| `jics.queues.sqs.region` | 字符串 | eu-west-1 | JICS 中使用的 Amazon 简单队列服务的 AWS 区域。 |  | 
| `jics.jcl.rt.encoding` | 字符串 | CP037 | 在专用 JICS 队列中编写的 JCL 脚本的编码。 |  | 
| `jics.jcl.rt.queue` | 字符串 | JICS | 运行时可以逐行写入 JCL 脚本的队列的名称。 |  | 
| `mq.queues.sqs.region` | 字符串 | eu-west-3 | AWS SQS MQ 服务的 AWS 区域。 |  | 
| `quartz.scheduler.stand-by-if-error` | 布尔值 | false | 指定当作业调度程序处于待机模式时是否触发作业执行。如果设置为 true，则启用时不会触发作业执行。 |  | 
| `databaseStatistics` | 布尔值 | false | 指定是否允许 SQL 生成器收集和显示统计信息。 |  | 
| `dbDateFormat` | 字符串 | yyyy-MM-dd | 数据库目标日期格式。 |  | 
| `dbTimeFormat` | 字符串 | HH:mm:ss | 数据库目标时间格式。 |  | 
| `dbTimestampFormat` | 字符串 | yyyy-MM-dd HH: mm: ss.sssssss | 数据库目标时间戳格式。 |  | 
| `dateTimeFormat` | 字符串 | ISO |  dateTimeFormat 描述了如何将数据库日期时间戳类型泄漏到数据简化器实体中。允许的值包括：`ISO`、`EUR`、`EUR`、`USA`、`LOCAL` |  | 
| `localDateFormat` | 字符串 |  | 本地日期格式列表。使用 `\` 分隔每种格式。 |  | 
| `localTimeFormat` | 字符串 |  | 本地时间格式列表。使用 `\` 分隔每种格式。 |  | 
| `localTimestampFormat` | 字符串 |  | 本地时间戳格式列表。使用 `\` 分隔每种格式。 |  | 
| `pgmDateFormat` | 字符串 | yyyy-MM-dd | 日期时间格式 |  | 
| `pgmTimeFormat` | 字符串 | HH.mm.ss | 程序 (pgm) 执行的时间格式。 |  | 
| `pgmTimestampFormat` | 字符串 | yyyy-MM-dd-HH.mm.ss.SSSSSS | 时间戳格式。 |  | 
| `cacheMetadata` | 布尔值 | true | 指定是否缓存数据库元数据。 |  | 
| `forceDisableSQLTrimStringType` | 布尔值 | false | 指定是否禁用所有 sql 字符串参数的 TRIM。 |  | 
| `fetchSize` | 数字 |  | 游标的 fetchSize 值。在通过加载/卸载 utils 使用区块获取数据时使用。 |  | 
| `check-groovy-file` | 布尔值 | true | 指定是否在注册前检查 groovy 文件内容。 |  | 
| `qtemp.uuid.length` | 数字 | 9 | QTEMP 的唯一 ID 长度。 |  | 
| `qtemp.dblog` | 布尔值 | false | 是否启用 QTEMP 数据库日志记录。 |  | 
| `qtemp.cleanup.threshold.hours` | 数字 | 0 | 指定何时启用 `qtemp.dblog`。数据库分区的生命周期（以小时为单位）。 |  | 
| `invalidDataTolerence` | 布尔值 | true | 指定打包类型是否支持无效数据。 |  | 
| `program.timeout` | 数字 | –1 | 指定任何 program/transaction 执行的超时时间（以秒为单位）。在这段时间之后，系统将尝试中断程序。 |  | 
| `gapwalk.line.separator` | 字符串 | null | 在 gapwalk 中指定行分隔符类型。支持的值为 WIN (CRLF)/UNIX (LF)/LINUX (LF)。其他值将被忽略，并使用 line.sepatator 系统属性。 |  | 
| `enableActivePgmIdCache` | 布尔值 | false | 指定是否启用活动程序 ID 本地缓存。请谨慎使用此特征，因为 JICS 资源可以在程序和用户之间共享。任何管理员都可以在外部更改这些资源，并且所放置的本地缓存可能会失效。 |  | 
| `mq.queues.default.syncpoint` | 布尔值 | false | 指定未设置 MQPMO\_SYNCPOINT 和 MQPMO\_NO\_SYNCPOINT 时 MQ PUT 命令的默认行为。当设置为 true 时，它的作用就像 `MQPMO_SYNCPOINT`，在 PUT 命令期间不会直接提交消息。当设置为 false 时，它的作用就像 `MQPMO_NO_SYNCPOINT`，在 PUT 命令期间会直接提交消息。 |  | 
| `dataSimplifier.byteRangeBoundsCheck` | 布尔值 | false | 设置为 true 时，它可确保使用不正确的值创建 no ByteRange 。默认值为 false。 |  | 
| `file.stdoutIntoLogger` | 布尔值 | false | 指定是否启用写入记录器，而不是 `SYSPRINT` 和 `SYSPUNCH` 文件中的默认系统输出流。 |  | 
| `tempFilesDirectory` | 字符串 | null | 指定生成的临时文件所在文件夹位置的名称。 |  | 
| `cleanTempFilesDirectoryAtStartup` | 布尔值 | true | 指定是否在应用程序启动时清除临时文件文件夹的内容。 |  | 
| `tempFolderPattern` | 字符串 | null | 指定一种模式，该模式将用于根据以下预定义的和可自定义的信息动态构建临时文件夹的名称。<br />HOST：主机名。<br />JOBID：作业 ID。<br />HASHCODE：作业上下文的哈希码。<br />TIMESTAMP：获取时间戳时使用的模式。临时文件夹的目标名称是 TMP\_DIR\_ {}。tempFolderPattern例如，在以下模式中，名称将以作业 ID 开头并以 “时间戳” 结尾： tempFolderPattern: JOBID、host=xxxx、HASHCODE、timestamp=yyymmddhhmss。如果该属性未添加到 YAML 文件中或该属性为空，`tempFolderPattern`则临时文件夹的名称将为 “TMP\_DIR\_” \+ this.hashCode () ()。DefaultJobContext |  | 
| `database.cursor.raise.already.opened.error` | 布尔值 | false | 指定是否启用在打开已打开的游标时引发 SQLCODE 错误 502。 |  | 
| `jics.spool.smtp.hostname` | 字符串 | null | 指定 SMTP 服务器主机。示例：`smtp.xxx.com` |  | 
| `jics.spool.smtp.port` | 字符串 | null | 指定 SMTP 服务器端口。示例：25 |  | 
| `jics.spool.smtp.password` | 字符串 | null | 指定 SMTP 服务器的登录密码。 |  | 
| `jics.spool.smtp.username` | 字符串 | null | 指定 SMTP 服务器的用户名。 |  | 
| `jics.spool.smtp.debug` | 布尔值 | false | 指定 SMTP 服务器的调试模式。 |  | 
| `gapwalk-application.security` | 字符串 | `disabled` | 切换全局安全配置（XSS、CORS、CSRF、OAUTH 身份验证...）。支持的值包括 `disabled` 和 `enabled`。 |  | 
| `gapwalk-application.security.identity` | 字符串 | null | 全局身份验证方法。建议值为 `oauth`。支持的值包括 `json` 和 `oauth`。当 `gapwalk-application.security` 为 `enabled` 时，该属性为必需属性。 |  | 
| `gapwalk-application.security.issuerUri` | 字符串 | null | 身份提供者（IdP）的颁发机构 URI。当 `gapwalk-application.identity` 为 `oauth` 时，该属性为可选属性。 |  | 
| `gapwalk-application.security.allowedOrigins` | string[] | `null` | 支持的源列表。此选项要求将 `gapwalk-application.identity` 设置为 `oauth`。 |  | 
| `gdgDirectoryPath` | 字符串 | `output/gdg` | GDG 目录路径是存储 gdg 文件的目录。 | 4.6.0 | 
| `gapwalk-application.security.customAllowedHeaders` | String[] | null | 允许的自定义标题列表。此选项要求将 `gapwalk-application.identity` 设置为 `oauth`。 | 4.8.0 | 
| `listOfMDCUrlParams` | 字符串 | `null` | 执行 Groovy 批处理脚本时要添加到 MDC 的 URL 参数列表。 |  | 
| `gapwalk-application.security.claimGroupName` | 字符串 | `cognito:groups` | 声明属性，包含用户所属的所有组的列表。对于 Amazon cognito，请使用 `cognito:groups`；对于外部 IdP，请使用任何其他字符串。 |  | 
| `gapwalk-application.security.userAttributeName` | 字符串 | `username` | 用于标识用户请求的声明属性名称。对于 Amazon cognito，请使用 `username`；对于 Keycloak，请使用 `preferred_username`；对于外部 IdP，请使用任何其他字符串。 |  | 
| `gapwalk-application.defaultSuperAdminUserName` | 字符串 | `sadmin` | 禁用 `gapwalk-application.security` 时，请指定默认的本地超级用户名。 |  | 
| `gapwalk-application.defaultSuperAdminUserPwd` | 字符串 | `sadmin` | 禁用 `gapwalk-application.security` 时，指定默认的本地超级用户密码。 |  | 
| `gapwalk-application.security.filterURIs` | 字符串 | `disabled` | 切换过滤 URIs 配置。支持的值包括 `disabled` 和 `enabled`。 |  | 
| `gapwalk-application.security.blockedURIs` | String[] | null |  URIs 要屏蔽的列表。当 `gapwalk-application.security.filterURIs` 为 `enabled` 时，该属性为必需属性。 |  | 
| `jics.redis.*` | 支持的 Redis 属性 |  | 指定 JICS Redis 服务器连接工厂的配置属性，请参阅[支持的 Redis 属性](ba-runtime-redis-configuration.md#ba-runtime-redis-supported-properties)。 |  | 
| `spring.aws.client.jics.redis.secret` | 字符串 | null |  指定 JICS Redis 服务器连接工厂的凭证密钥 ARN，请参阅 [AWS 针对大型机运行时机密进行转换](ba-runtime-config-app-secrets.md)。 |  | 
| `jcl.checkpoint.enabled` | 布尔值 | false | 指定是否启用 JCL 检查点机制以支持作业重启。在每个步骤或主程序调用开始时，都会创建 JCL 检查点并将其保存到内存中的注册表中。如果定义了持久性提供程序，则在作业结束时，所有步骤级别的检查点都将保留。 |  | 
| `jcl.checkpoint.expireTimeout` | 数字 | –1 |  指定在持久性提供程序或内存中的注册表中保留 JCL 检查点的持续时间。 |  | 
| `jcl.checkpoint.expireTimeoutUnit` | 字符串 | SECONDS | 指定 `jcl.checkpoint.expireTimeout` 属性的持续时间单位。支持的枚举常量值：java.util.concurrent。 TimeUnit。 |  | 
| `jcl.checkpoint.provider` | 字符串 | null | 指定 JCL 检查点机制持久性提供程序。支持的值为 `redis`。 |  | 
| `jcl.checkpoint.redis.*` | 支持的 Redis 属性 |  |  指定 JCL 检查点机制的 REDIS 持久性提供程序的配置属性，请参阅[支持的 Redis 属性](ba-runtime-redis-configuration.md#ba-runtime-redis-supported-properties)。 |  | 
| `jcl.nullJclEof` | 布尔值 | true | 指定在作业执行期间如何处理空 JCL 语句 (//)。如果为 true，//立即终止作业（EOF 模式）。当为 false 时，//被视为空语句并继续执行（忽略模式）。 |  | 
| `job.default.encoding` | 字符串 | CP1047 | 指定用于初始化作业级存储的默认编码。例如， BLU4IV 应用程序中的开关使用此编码初始化为零。 | 4.9.0 | 
| `spring.aws.client.jcl.checkpoint.redis.secret` | 字符串 | null |  指定 JCL 检查点机制的 Redis 持久性提供程序的凭证密钥 ARN，请参阅 [AWS 针对大型机运行时机密进行转换](ba-runtime-config-app-secrets.md)。 |  | 
| `gapwalk.ssl.enabled` | 布尔值 | false | 指示将以下 `gapwalk.ssl.*` 属性设置为当前 JVM 系统属性（如果应用程序启动时尚未设置）。 |  | 
| `gapwalk.ssl.trustStore` | 字符串 | null | 请将值设置为系统属性 `javax.net.ssl.trustStore`（如果应用程序启动时尚未设置）。 |  | 
| `gapwalk.ssl.trustStorePassword` | 字符串 | null | 请将值设置为系统属性 `javax.net.ssl.trustStorePassword`（如果应用程序启动时尚未设置）。或者，强烈建议使用 AWS 机密，如中所述。[用于 SSL 密码设置的密钥管理器](ba-runtime-config-app-secrets.md#ba-runtime-ssl-secrets-properties) |  | 
| `gapwalk.ssl.trustStoreType` | 字符串 | null | 请将值设置为系统属性 `javax.net.ssl.trustStoreType`（如果应用程序启动时尚未设置）。 |  | 
| `gapwalk.ssl.keyStore` | 字符串 | null | 请将值设置为系统属性 `javax.net.ssl.keyStore`（如果应用程序启动时尚未设置）。 |  | 
| `gapwalk.ssl.keyStorePassword` | 字符串 | null | 请将值设置为系统属性 `javax.net.ssl.keyStorePassword`（如果应用程序启动时尚未设置）。或者，强烈建议使用 AWS 机密，如中所述。[用于 SSL 密码设置的密钥管理器](ba-runtime-config-app-secrets.md#ba-runtime-ssl-secrets-properties) |  | 
| `mq.queues` | 字符串 | `sqs` | 指定使用哪个受支持的队列代理：`sqs`（使用 Amazon SQS）、`rabbitmq`（使用本地 Rabbit MQ）或 `jms`（使用本地 IBMMQ）。 |  | 
| `mq.queues.jmsMQQueueManagers[N]` |  |  | 如果 `mq.queues` 为 `jms`，则支持指定 IBM MQ 连接列表。对于第一个连接为 `mq.queues.jmsMQQueueManagers[0]`，对于第二个连接为 `mq.queues.jmsMQQueueManagers[1]`，依此类推。 |  | 
| `mq.queues.jmsMQQueueManagers[N].jmsMQQueueManager` | 字符串 | null | IBMMQ 队列管理器名称。 |  | 
| `mq.queues.jmsMQQueueManagers[N].jmsMQAppName` | 字符串 | null | IBMMQ 应用程序名称。 |  | 
| `mq.queues.jmsMQQueueManagers[N].jmsMQChannel` | 字符串 | null | IBMMQ 频道名称。 |  | 
| `mq.queues.jmsMQQueueManagers[N].jmsMQHost` | 字符串 | null | IBMMQ 主机名。 |  | 
| `mq.queues.jmsMQQueueManagers[N].jmsMQPort` | 数字 | null | IBMMQ 端口。 |  | 
| `mq.queues.jmsMQQueueManagers[N].jmsMQUserid` | 字符串 | null | IBMMQ 用户名。 |  | 
| `mq.queues.jmsMQQueueManagers[N].jmsMQPassword` | 字符串 | null | IBMMQ 用户密码。或者，强烈建议使用 AWS 机密，如中所述。[用于 IBM MQ 密码设置的密钥管理器](ba-runtime-config-app-secrets.md#ba-runtime-IBMMQ-secrets-properties) |  | 
| `mq.queues.jmsMQQueueManagers[N].jmsMQMaxPoolSize` | 数字 | 0 | IBMMQ 的最大池大小。如果为 0，则启用无限数量的物理连接。 |  | 
| `mq.queues.jmsMQQueueManagers[N].jmsMQSSLCipher` | 字符串 | null | IBMMQ SSL 密码套件。例如 `"*TLS12ORHIGHER"`。有关更多详细信息，请参阅官方文档 [TLS CipherSpecs 和 IBM MQ 类 CipherSuites 中的 JMS](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=jms-tls-cipherspecs-ciphersuites-in-mq-classes)。 |  | 
| `mq.queues.non.jms.client` | 布尔值 | false | 指明发送消息的目标客户端是否为非 JMS。非 JMS 客户端将使用原生 MQ 格式，而 JMS 将使用 RFH2 格式。 | 4.5.0 | 
| `mq.connection.pool.share` | 布尔值 | false | 指明是使用同一个队列管理器共享还是重新创建 JMS 连接池。 | 4.9.0 | 
| `mq.queues.rabbitMQHost` | 字符串 | null | Rabbit MQ 主机名。 |  | 
| `mq.queues.rabbitMQVirtualHost` | 字符串 | null | Rabbit MQ 虚拟主机名。 |  | 
| `mq.queues.rabbitMQPort` | 数字 | null | Rabbit MQ 端口。 |  | 
| `mq.queues.rabbitMQUsername` | 字符串 | null | Rabbit MQ 用户。 |  | 
| `mq.queues.rabbitMQPassword` | 字符串 | null | Rabbit MQ 密码。 |  | 
| `mf.runtime.switch.N` | 布尔值 | true | 为 MF 自然行序文件启用空插入。 | 4.4.0 | 
| `mf.runtime.switch.T` | 布尔值 | false | 允许在 MF 自然行序文件中插入制表符。 | 4.4.0 | 
| `gapwalk.database.support.useSavePointToRestoreFail` | 布尔值 | false | 通过在插入查询中使用 savePoints，在出现故障时启用事务恢复。启用此属性可能会影响数据库性能。您可以使用 query-to-database映射配置为特定查询覆盖此设置。 | 4.6.0 | 
| `xmlGeneratorPrettyFormat` | 布尔值 | true | 确定 XmlGenerator 类中生成的 XML 输出的格式样式。设置为时`true`，XML 输出将格式化为人类可读的缩进结构（打印精美）。设置为时`false`，输出采用紧凑的单行格式，不带额外的空格。 | 4.8.0 | 
| `gapwalk.database.metadata.schema-inclusion.enabled` | 布尔值 | false | 启用内存优化功能，控制应用程序缓存哪些数据库架构。此配置有助于通过智能管理架构元数据来减少内存占用，同时保持系统的稳定性。它自动包含一些常见的数据库系统架构，这些架构可能是正常操作所必需的。 | 4.9.0 | 
| `gapwalk.database.metadata.schema-inclusion.schemas.global` | 名单 <String> | null | 定义应缓存的架构列表。 | 4.9.0 | 
| `sqlConnectionAutoCommitEnabled` | 布尔值 | true | 允许在连接重置操作期间自动提交当前连接。启用后，在非 XA 环境中切换到新的数据源连接之前，会自动提交当前连接，以防止连接不稳定。禁用后，会记录一条有关重置操作期间潜在连接问题的警告消息。 | 4.10.0 | 
| `gapwalk.post.script.mediatype.json` | 布尔值 | false | 指定是否将来自端点的响应`Content-Type`标头设置`/post/script/{scriptId:.+}`为`application/json`，具体取决于布尔变量的值。如果设置为 false，则默认值为`text/plain; charset=utf-8`。 |  | 
| `startDefaultJob` | 字符串 | `false` | 指定是否在第一次事务处理时初始化默认作业。 |  | 
| `gapwalk.cobol.cblqda.enabled` | 布尔值 | false | 启用 CBLQDA 功能，该功能可在 OPEN 语句期间控制 QSAM 文件的动态分配。此配置有助于动态分配程序中声明的临时文件，即使这些文件未在 JCL 脚本中定义。 |  | 
| `mq.queues.jms.connectionfactory.*` | 支持的 Atomikos 连接工厂属性 |  | 指定 JMS MQ 连接池的配置属性。 |  | 

## 可选 Web 应用程序的可用属性
<a name="ba-runtime-key-value-web"></a>

根据您的现代化应用程序，您可能需要配置一个或多个可选 Web 应用程序，这些应用程序表示对依赖关系的支持，例如用于配置每个可选 Web 应用程序的z/OS, AS/400, or IMS/MFS. The following tables contain lists of the available key/value参数。

### gapwalk-utility-pgm.war
<a name="ba-runtime-key-value-web-utility"></a>

这个可选的 Web 应用程序包含对 Z/OS 实用程序的支持。

此表提供了此应用程序 key/values 参数的详尽视图。


| Key | Type | 默认 值 | 说明 | 发行版 | 
| --- | --- | --- | --- | --- | 
| `logging.config` |  路径 |  classpath:logback-utility.xml |  用于引用 logback 配置文件的标准密钥。其他标准日志记录密钥也可用。 |  | 
| `spring.jta.enabled` |  布尔值 |  false |  标准密钥。如果数据源支持模式不是 static-xa，则必须禁用 Spring JTA 事务自动配置。 |  | 
| `spring.datasource.primary.jndi-name` |  字符串 |  jdbc/primary |  主要数据源的 Java 命名和目录接口（JNDI）名称（如果使用 JNDI）。 |  | 
| `primary.datasource` -`driver-class-name` -`url` -`username` -`password` |  带子键的标准 Spring 数据源 |   |  如果不使用 JNDI，则包含应用程序数据库的连接信息。必须具有与现代化应用程序 YAML 文件相同的配置。<br /> 或者，强烈建议使用 AWS 机密，如中所述。[客户端数据库](ba-runtime-config-app-secrets.md#client-database) |  | 
| `encoding` |  字符串 |  ASCII |  实用程序中使用的编码。需要有效的编码`CP1047`，`IBM930`，`ASCII`，`UTF-8`。 |  | 
| `sysPunchEncoding` |  字符串 |  ASCII |  syspunch 编码字符集。需要有效的编码`CP1047`，`IBM930`，`ASCII`，`UTF-8`。 |  | 
| `systin.encoding` |  字符串 |  ASCII |  SYSTIN 文件数据集的编码字符集。需要有效的编码`CP1047`，`IBM930`，`ASCII`，`UTF-8`。 | 4.5.0 | 
| `zonedMode` |  字符串 |  EBCDIC\_STRICT |  对分区数据类型进行编码或解码的模式。允许的值包括：`EBCDIC_STRICT`、`EBCDIC_MODIFIED`、`AS400`。 |  | 
| `idcams.encoding.forced` |  字符串 |  |  IDCAMS 实用程序中使用的编码。需要有效的编码`CP1047`，`IBM930`，`ASCII`，`UTF-8`。 | 4.4.0 | 
| `unload.chunkSize` |  数字 |  0 |  卸载实用程序使用的区块大小。 |  | 
| `unload.computeRecordSizeIfNull` |  布尔值 |  false | 如果未指定，则确定是否计算记录大小。如果指定，则该值保持不变。 |  | 
| `unload.sqlCodePointShift` |  数字 |  0 |  卸载实用程序的 SQL 代码点转换。运行字符转换进程。如果您的目标数据库来自 DB2 于 Postgresql，则为必填项。 |  | 
| `unload.columnFiller` |  字符串 |  space |  卸载实用程序列填充内容。 |  | 
| `unload.varCharIsNull` |  布尔值 |  false |  在 INFTILB 程序中使用此参数，如果设置为 `true`，则所有具有空（空格）值的不可为空的字段都将返回一个空字符串。 |  | 
| `unload.useDatabaseConfiguration` |  布尔值 |  false |  指定是否在卸载实用程序中使用 application-main.yml 中的日期或时间配置。 |  | 
| `unload.format.date` |  字符串 |  MM/dd/yyyy |  卸载实用程序中使用的日期格式（如果启用 `unload.useDatabaseConfiguration`）。 |  | 
| `unload.format.time` |  字符串 |  HH.mm.ss |  卸载实用程序中使用的时间格式（如果启用 `unload.useDatabaseConfiguration`）。 |  | 
| `unload.format.timestamp` |  字符串 |  yyyy-MM-dd-HH.mm.ss.ssssss |  卸载实用程序中使用的时间戳格式（如果启用 `unload.useDatabaseConfiguration`）。 |  | 
| `unload.nbi.whenNull` |  十六进制 |  6F |  数据库中的值为空时，要添加的空字节指示符（NBI）值。 |  | 
| `unload.nbi.whenNotNull` |  十六进制 |  00 |  数据库中的值不为空时，要添加的空字节指示符（NBI）值。 |  | 
| `unload.nbi.writeNullIndicator` |  布尔值 |  false |  指定是否在卸载输出文件中写出空指示符。 |  | 
| `unload.bmc.useInto` |  布尔值 |  false |  指定是否处理卸载实用程序的 INTO bmc 控制关键字。 |  | 
| `unload.fetchSize` |  数字 |  0 |  允许您在卸载实用程序中处理游标时调整提取大小。 |  | 
| `unload.noPad` |  布尔值 |  true |  表示要卸载可变长度字符 (VARCHAR) 字段，而不会对最大长度进行任何填充。 | 4.5.0 | 
| `treatLargeNumberAsInteger` |  布尔值 |  false |  指定是否将大数字作为 `Integer` 处理。默认情况下，大数字作为 `BigDecimal` 处理。 |  | 
| `load.batchSize` |  数字 |  0 |  加载实用程序批次大小。 |  | 
| `load.format.localDate` |  字符串 |  dd.mm.yyyy\\\\ yyyy-mm-dd dd/MM/yyyy |  要使用的加载实用程序本地日期格式。 |  | 
| `load.format.localTime` |  字符串 |  HH:mm:ss\\HH.mm.ss |  要使用的加载实用程序本地时间格式。 |  | 
| `load.format.dbDate` |  字符串 |  yyyy-MM-dd |  要使用的加载实用程序数据库格式。 |  | 
| `load.format.dbTime` |  字符串 |  HH:mm:ss |  要使用的加载实用程序数据库时间。 |  | 
| `load.sqlCodePointShift` |  数字 |  0s |  加载实用程序的 SQL 代码点转换。运行字符转换进程。如果您的目标数据库来自 DB2 于 Postgresql，则为必填项。 |  | 
| `load.applyRollback` | 布尔值 | false | 将此参数设置为 `true`，表示您希望服务在将数据加载到数据库遇到错误时回滚表更改。 |  | 
| `forcedDate` |  字符串 |   |  强制将日期（如果有）更改为提供的日期。 |  | 
| `frozenDate` |  布尔值 |  true |  指定是否冻结日期。仅在设置了 `forcedDate` 时适用。 |  | 
| `jcl.type` |  字符串 |  MV |  .jcl 文件类型。允许的值包括：`jcl`、`vse`。对于非 vse jcl，如果文件为空，IDCAMS 实用程序 PRINT/REPRO 命令将返回 4。 |  | 
| `hasGraphic` |  布尔值 |  false |  INFUTILB 实用程序是否需要处理图形列。 DB2  |  | 
| `convertGraphicDataToFullWidth` |  布尔值 |  true | 指定是否将图形数据转换为全角格式。 |  | 

### gapwalk-cl-command.war
<a name="ba-runtime-key-value-web-cl"></a>

此可选的 Web 应用程序包含对 AS/400 实用程序的支持。

此表提供了此应用程序 key/values 参数的详尽视图。


| Key | Type | 默认 值 | 说明 | 
| --- | --- | --- | --- | 
|  `logging.config` |  路径 |  classpath:logback-utility.xml |  用于引用 logback 配置文件的标准密钥。其他标准日志记录密钥也可用。 | 
|  `spring.jta.enabled` |  布尔值 |  false |  标准密钥。如果数据源支持模式不是 static-xa，则必须禁用 Spring JTA 事务自动配置。 | 
|  `spring.datasource.primary.jndi-name` |  字符串 |  jdbc/primary |  主要数据源的 Java 命名和目录接口（JNDI）名称（如果使用 JNDI）。 | 
|  `primary.datasource` \+ -`driver-class-name` \+ -`url` \+ -`username` \+ -`password` |  带子键的标准 Spring 数据源 |   |  如果不使用 JNDI，则包含应用程序数据库的连接信息。必须具有与现代化应用程序 YAML 文件相同的配置。<br /> 或者，强烈建议使用 AWS 机密，如中所述。[客户端数据库](ba-runtime-config-app-secrets.md#client-database) | 
|  `encoding` |  字符串 |  ASCII |  实用程序中使用的编码。预期的有效编码包含 `CP1047`、`IBM930`、`ASCII`、`UTF-8`... | 
|  `zonedMode` |  字符串 |  EBCDIC\_STRICT |  对分区数据类型进行编码或解码的模式。允许的值包括：`EBCDIC_STRICT`、`EBCDIC_MODIFIED`、`AS400`。 | 
|  `commands-off` |  字符串 |   | 要关闭的命令列表，以逗号分隔。允许的值包括：`PGM_BASIC`、`RCVMSG`、`SNDRCVF`、`CHGVAR`、`QCLRDTAQ`、`RTVJOBA`、`ADDLFM`、`ADDPFM`、`RCVF`、`OVRDBF`、`DLTOVR`、`CPYF`、`SNDDTAQ`。当你想禁用或覆盖现有程序时很有用。 `PGM_BASIC`是专为调试目的而设计的大型机运行时专用 AWS 转换程序。 | 
|  `forcedDate` |  字符串 |   | 强制将日期（如果有）更改为提供的日期。 | 

### gapwalk-hierarchical-support.war
<a name="ba-runtime-key-value-web-hierarchical"></a>

这个可选的 Web 应用程序包含 IMS/MFS 事务支持。

此表提供了此应用程序 key/values 参数的详尽视图。


| Key | Type | 默认 值 | 说明 | 
| --- | --- | --- | --- | 
|  `logging.config` |  路径 |  classpath:logback-utility.xml |  用于引用 logback 配置文件的标准密钥。其他标准日志记录密钥也可用。 | 
|  `spring.jta.enabled` |  布尔值 |  false |  标准密钥。如果数据源支持模式不是 static-xa，则必须禁用 Spring JTA 事务自动配置。 | 
|  `jhdb.configuration.context.encoding` |  字符串 |   |  Java 分层数据库 (JHDB) 编码。预期的有效编码字符串包含 `CP1047`、`IBM930`、`ASCII`、`UTF-8`... | 
|  `jhdb.checkpointPersistence` |  字符串 |  none |  检查点持久性模式。允许的值包括：`none`、`add`、`end`。使用 `add` 可在创建新检查点并将其添加到注册表后保留该检查点。使用 `end` 可在服务器关闭时保留检查点。任何其他值都会禁用持久性。请注意，每次向注册表中添加新的检查点时，所有现有的检查点都将被序列化并且文件会被擦除，而不是添加到文件中现有数据中。这样可能会对性能产生一些影响，具体取决于检查点的数量。 | 
| `jhdb.keepParent` | 布尔值 | false | 在 IMS 插入期间是否保留 \_parent 和 \_logicalparent。设置为 true 时，IMS ISRT 调用将在数据库列中插入 \_parent 和 \_logicalparent。 | 
| `jhdb.query.timeout` | int | –1 | 指定任何 jhdb 事务执行的超时时间（以秒为单位）。在这段时间之后，系统将尝试中断程序。如果值为 -1（默认），则不设置超时。 | 
| `jhdb.backend` | 字符串 |  | Jhdb 后端类型。预期值为 `rdbms` | 
| `jhdb.transaction.scope.programs` | 字符串 |  | 要声明为整个交易的程序列表。用逗号 (`,`) 分隔每个程序。例如：`PCP008,PCT008` | 
| `metadata.datasource` \+ -`driver-class-name` \+ -`url` \+ -`username` \+ -`password` \+ -`type` | 字符串 | 带子键的标准 Spring 数据源 | 包含 jhdb 数据库的元数据信息，包括 psbs、dbds、连接。或者，强烈建议使用 AWS 机密。 | 

## 客户端应用程序的可用属性
<a name="ba-runtime-key-value-client"></a>

您的现代化应用程序可能需要对客户端 Spring 应用程序进行特定的属性配置。这些属性从运行时 JAR 文件中打包的类初始化 Bean。在该`application-profile.yaml`文件中，配置文件值是在应用程序生成期间设置的，允许您配置这些属性。下表列出了可用于配置客户端 Web 应用程序的 key/value 参数，该应用程序使用 Gapwalk 运行时中打包的类中的 Bean


| Key | Type | 默认 值 | 说明 | 发行版 | 
| --- | --- | --- | --- | --- | 
| `blu4iv.dtaara.library.disable` | 布尔值 | false | 控制数据区操作上下文中库的使用。如果设置为 true，则数据区操作将禁用库的使用，但这不会影响的使用 QTemp。如果设置为 false，则在对数据区域执行 CRUD 操作时会考虑库。 | 4.5.0 | 
| `blu4iv.dao.data.max` | 数字 | 10 | 输入 DAO 操作的内部缓存的大小。此缓存存在于程序级别（单实例）。 | 4.9.0 | 
| `blu4iv.dao.sort.function` | 字符串 |  | blu4iv 数据库的排序函数名称。 | 4.9.0 | 
| `blu4iv.dao.support` | 字符串 | JPA | 指定要使用的数据访问实现（JPA 或 JDBC）。 | 4.9.0 | 
| `blu4iv.dao.cache.enabled` | 布尔值 | false | 启用内存缓存。 | 4.8.0 | 
| `blu4iv.dao.cache.enabledHits` | 布尔值 | false | 将请求数量的跟踪添加到缓存中。 | 4.8.0 | 
| `blu4iv.dao.cache.initMaxResults` | 数字 | 10000 | 缓存的大小。 | 4.8.0 | 
| `blu4iv.dao.cache.entries.fileIds` | 字符串 |  | 要缓存的数据库表的列表。 | 4.8.0 | 
| `blu4iv.dao.cache.entries.programIds` | 字符串 |  | 程序的标识符，应在其中为指定表激活缓存。缓存可用于执行堆栈中的所有子程序。 | 4.8.0 | 
| `blu4iv.librarylist.enabled` | 布尔值 | false | 允许使用库列表来解析文件库。 | 4.10.0 | 
| `blu4iv.librarylist.libraries` | 字符串 |  | 图书馆的初始列表从左到右排序。 | 4.10.0 | 

### 为应用程序配置内存缓存 AS400
<a name="ba-runtime-in-memory-cache-as400"></a>

内存缓存功能使用户能够在内存中缓存只读数据，从而显著提高数据密集型程序的性能。缓存系统通过三种方式优化性能：仅在首次访问时加载数据、按需创建数据访问地图，以及高效地将缓存的数据存储在程序存储器附近。这种设计最大限度地减少了内存开销，同时最大限度地提高了速度。

```
###################################################################
# Cache configuration for read operations called from DAO classes #
###################################################################
blu4iv:
 dao:
   cache:
     enabled: true
     enabledHits: true
     initMaxResults: 100000
     entries:
     -
       fileIds: [${TABLEA}]
       programIds: [${PROGRAM1}]
     -
       fileIds: [${TABLEB},${TABLEC}]
       programIds: [${PROGRAM2}]
  librarylist:
         enabled: true
         libraries: ["LIBA","LIBC","LIBE"]
```

## 配置 API 访问日志
<a name="ba-runtime-api-access-logging"></a>

API 访问日志记录功能可记录有关 BAC、JAC 和 Gapwalk 应用程序的 API 请求的详细信息，通过跟踪谁访问了什么内容以及何时访问了来帮助满足安全要求。


| Key | Type | 默认 值 | 说明 | 发行版 | 
| --- | --- | --- | --- | --- | 
| `api.logging.enabled` | 布尔值 | false | 为 BAC、JAC 和 Gapwalk 应用程序启用 API 访问日志记录。启用后，将记录所有 API 请求并附上详细信息。 | 5.0.0 | 

启用后，用户可以提供日志文件配置，以使用记录器名称在选定位置记录 API 访问日志。`api.access`日志可以包括以下 MDC 字段：


| MDC Field | 说明 | 
| --- | --- | 
| `api-date` | 发出 API 请求的日期和时间 | 
| `api-duration` | 处理 API 请求花费了多长时间（毫秒） | 
| `api-host` | API 请求的来源地址 | 
| `api-context` | API 的托管位置 | 
| `api-user` | 发出 API 请求的人员的用户名或标识符 | 
| `api-sessionid` | 用户当前登录会话的唯一标识符 | 
| `api-scheme` | 使用的传输协议，例如 HTTP 或 HTTPS。 | 
| `api-name` |  endpoint/URI 被访问的 | 
| `api-retcode` | API 请求完成后返回的状态码 | 
| `api-secure` | 用于保护 API 调用的安全方法（例如，令牌 OAuth2、匿名） | 
| `api-method` | 发出的 HTTP 请求的类型（例如，GET、POST、DELETE 等） | 

要为 API 访问日志配置专用日志文件，请在您的日志回溯配置中添加以下内容：

```
<!-- File appender -->
<appender name="ApiAccessFile" class="ch.qos.logback.core.FileAppender">
    <file>logs/main/main-api-access.log</file>
    <immediateFlush>true</immediateFlush>
    <encoder>
        <pattern>%date %X{api-scheme} %X{api-host} %X{api-method} %X{api-name} - Return code: %X{api-retcode} - Start date: %X{api-date} - Duration: %X{api-duration} ms - User: %X{api-user} - SessionId: %X{api-sessionid} - SecureMethod: %X{api-secure} %n</pattern>
    </encoder>
</appender>

<logger name="api.access" level="info" additivity="false">
    <appender-ref ref="ApiAccessFile" />
    <appender-ref ref="CONSOLE" />
</logger>
```

示例日志输出：

```
2025-06-13 22:24:36,174 http 127.0.0.1 GET /bac/api/services/rest/bluesamservice/listDataSet - Return code: 200 - Start date: 06-13-2025 22:24:35.863+0200 - Duration: 308 ms - User: velocity_admin - SessionId:
1X1X1X1X1X1X1X1X1X1X1X1X1X1X1X1X- SecureMethod: Oauth2
```