設定受管應用程式的公用程式存取權 - AWS 大型主機現代化

AWS Mainframe Modernization Service (受管執行期環境體驗) 不再向新客戶開放。對於與 AWS Mainframe Modernization Service (受管執行期環境體驗) 類似的功能,探索 AWS Mainframe Modernization Service (自我管理體驗)。現有客戶可以繼續正常使用該服務。如需詳細資訊,請參閱AWS 大型主機現代化可用性變更

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定受管應用程式的公用程式存取權

當您重構具有 AWS Blu Age 的大型主機應用程式時,如果您的應用程式依賴於 IDCAMS、INFUTILB、SORT 等各種舊版平台公用程式,您可能需要提供支援。 AWS Blu Age Refactoring 提供此存取權,搭配現代化應用程式部署。此 Web 應用程式需要application-utility-pgm.yml您必須提供的組態檔案 。如果您未提供此組態檔案,Web 應用程式將無法與您的應用程式一起部署,也無法使用。

本主題說明您可以在application-utility-pgm.yml組態檔案中指定的所有可能屬性及其預設值。主題說明必要和選用屬性。下列範例是完整的組態檔案。它會依我們建議的順序列出屬性。您可以使用此範例做為您自己的組態檔案的起點。

# 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

組態屬性

您可以在組態檔案中指定下列屬性。

spring.jta.enabled

(選用) 控制是否啟用 JTA 支援。對於公用程式,我們建議您將此值設定為 false

spring.jta.enabled : false
logging.config

(必要) 指定專用記錄器組態檔案的路徑。我們建議您使用 名稱logback-utility.xml,並提供此檔案做為現代化應用程式的一部分。組織這些檔案的常見方法是將所有記錄器組態檔案放在相同位置,通常位於 子資料夾中,/config/logback其中 /config 是包含 YAML 組態檔案的資料夾。如需詳細資訊,請參閱 日誌傳回文件中的第 3 章:日誌傳回組態

logging.config : classpath:logback-utility.xml
編碼

(必要) 指定公用程式使用的字元集。在大多數情況下,當您從 z/OS 平台遷移時,此字元集是 EBCDIC 變體,並且應該符合針對現代化應用程式設定的字元集。如果未設定 ,則預設為 ASCII

encoding : cp1047
sysPunchEncoding

(選用) 指定 INFUTILB 和 DSNUTILB 用來產生和讀取 SYSPUNCH 檔案的字元集。如果您使用舊版平台中的 SYSPUNCH 檔案,則此值應為 EBCDIC 變體。如果未設定 ,則預設為 ASCII

sysPunchEncoding : cp1047

資料來源組態

有些資料庫相關的公用程式,例如 LOAD 和 UNLOAD,需要透過資料來源存取目標資料庫。如同 AWS 大型主機現代化內的其他資料來源定義,此存取需要您使用 AWS Secrets Manager。指向 Secrets Manager 中適當秘密的屬性如下:

主要資料來源

這是主要商業應用程式資料庫。

spring.aws.client.datasources.primary.secret

(選用) 在 Secrets Manager 中指定包含資料來源屬性的秘密。

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

(選用) 如果資料庫名稱未直接在資料庫秘密中以 dbname 屬性提供,則指定目標資料庫名稱。

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

(選用) 指定要使用的連線集區實作的完整名稱。預設值為 com.zaxxer.hikari.HikariDataSource

spring.aws.client.datasources.primary.type: target-datasource-type

如果主要資料來源的類型為 com.zaxxer.hikari.HikariDataSource,您可以指定其他屬性,如下所示:

spring.datasource.primary.【property_name】

(選用) 您可以使用此格式來指定額外的屬性,以設定主要資料來源連線集區實作。

以下是類型 的主要資料來源範例com.zaxxer.hikari.HikariDataSource

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

其他公用程式資料來源

除了主要資料來源之外,您還可以提供其他公用程式資料來源。

spring.aws.client.utility.pgm.datasources.names

(選用) 指定公用程式資料來源名稱的清單。

spring.aws.client.utility.pgm.datasources.names: dsname1, dsname2, dsname3
spring.aws.client.utility.pgm.datasources.【dsname】.secret

(選用) 指定 SSM 中託管資料來源屬性的秘密 ARN。在 中指定的名稱清單中提供 【dsname】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

(選用) 如果資料庫名稱不是使用 dbname 屬性直接在資料庫秘密中提供,則指定目標資料庫名稱。在 中指定的名稱清單中提供 【dsname】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

(選用) 指定要使用的連線集區實作的完整名稱。預設值為 com.zaxxer.hikari.HikariDataSource。在 中指定的名稱清單中提供 【dsname】spring.aws.client.utility.pgm.datasources.names

spring.aws.client.utility.pgm.datasources.dsname1.type: target-datasource-type

如果公用程式資料來源類型為 com.zaxxer.hikari.HikariDataSource,您可以提供其他屬性,如下所示:

spring.datasource.【dsname】.【property_name】

(選用) 指定額外屬性的集合,以設定公用程式資料來源連線集區實作。在 中指定的名稱清單中提供 【dsname】spring.aws.client.utility.pgm.datasources.names。以下列格式指定屬性: property_name : value

以下是類型 的其他公用程式資料來源範例com.zaxxer.hikari.HikariDataSource

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

(選用) 與 Oracle 資料庫引擎詳細資訊和 DSNTEP2/DSNTEP4 公用程式使用量相關。如果您將此旗標設定為 true,則來自 Oracle 資料庫 (NUMBER (38,0)) 的大型數字會視為整數。預設:false

treatLargeNumberAsInteger : false
zonedMode

(選用) 設定分區模式以編碼或解碼分區資料類型。此設定會影響符號數字的表示方式。有效值如下:

  • EBCDIC_STRICT:預設。使用嚴格定義來處理標誌。根據字元集是 EBCDIC 還是 ASCII,符號位數表示會使用下列字元:

    • 對應至位元組 (Cn+Dn) 的 EBCDIC 字元,代表正負位數範圍 (+0+9-0-9)。字元會顯示為 {A}IJR

    • 對應至位元組 (3n+7n) 的 ASCII 字元,代表正負位數範圍 (+0+9-0-9)。字元顯示為 09p顯示為 y

  • EBCDIC_MODIFIED:使用修改後的符號處理定義。對於 EBDIC 和 ASCII,相同的字元清單代表符號數字,也就是+0+9映射到 { + AI-0-9映射到 } + JR。 \

  • AS400:用於來自 iSeries (AS400) 平台的現代化舊版資產。

zonedMode:EBCDIC_STRICT
jcl.type

(選用) 指出現代化 JCL 指令碼的舊版類型。如果叫用 JCL 的類型為 ,IDCAMS 公用程式會使用此設定來量身打造傳回碼vse。有效值如下:

  • mvs (預設值)

  • vse

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: 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

(選用) 指定整數值,代表資料上使用的 SQL 程式碼點轉移。預設值為 0。這表示不會進行程式碼點轉移。將此設定與用於現代化應用程式的 SQL 程式碼點轉移參數對齊。使用程式碼點轉移時,此參數最常見的值為 384。

unload.sqlCodePointShift: 0
nbi

(選用) 指定 null 指標位元組。這是新增至資料值右側的十六進位值 (做為字串)。兩個可能的值如下:

  • whenNull:當資料值為 null 時新增十六進位值。預設值為 6`。有時候FF會改用高值。

    unload.nbi.whenNull: "6F"
  • whenNotNull:當資料值不是 null 但資料欄是 null 時,新增十六進位值。預設值為 00(低值)。

    unload.nbi.whenNotNull: "00"
useDatabaseConfiguration

(選用) 指定日期和時間格式屬性。這用於處理 UNLOAD 查詢中的日期/時間物件。預設值為 false

  • 如果設定為 true, 會使用主組態檔案 () 中的 pgmDateFormatpgmTimeFormat、 和 pgmTimestampFormat 屬性application-main.yml

  • 如果設定為 false, 會使用下列日期和時間格式屬性:

    • unload.format.date:指定日期格式模式。預設值為 MM/dd/yyyy

    • unload.format.time:指定時間格式模式。預設值為 HH.mm.ss

    • unload.format.timestamp:指定時間戳記格式模式。預設值為 yyyy-MM-dd-HH.mm.ss.SSSSSS

chunkSize

(選用) 指定用於建立 SYSREC 資料集的資料區塊大小。這些資料集是具有平行操作的資料集卸載操作的目標。預設值為 0(無區塊)。

unload.chunkSize:0
fetchSize

(選用) 指定資料擷取大小。值是使用資料區塊策略時,一次要擷取的記錄數目。預設:0

unload.fetchSize:0
varCharIsNull

(選用) 指定如何處理含空白內容的非 null varchar 資料欄。預設值為 false

如果您將此值設定為 true,資料欄內容會被視為空字串以用於卸載,而不是單一空格字串。僅true針對 Oracle 資料庫引擎案例將此旗標設為 。

unload.varCharIsNull: false
columnFiller

(選用) 指定用於填補 varchar 資料欄中卸載資料欄的值。可能的值為空格或低值。預設為空格。

unload.columnFiller: space

資料庫載入相關屬性

使用這些屬性來設定公用程式,將資料集記錄載入目標資料庫,例如 DSNUTILB。下列所有屬性皆為選用。

此範例顯示所有可能的負載屬性。

# 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

(選用) 指定整數值,代表用於資料上的 SQL 程式碼點轉移。預設為 0,這表示應用程式不會轉移程式碼點。將此設定與用於現代化應用程式的 SQL 程式碼點轉移參數對齊。當您使用程式碼點轉移時,此參數最常見的值為 384。

load.sqlCodePointShift : 384
batchSize

(選用) 指定整數值,代表在將實際批次陳述式傳送至資料庫之前要處理的記錄數。預設為 0。

load.batchSize: 500
格式

(選用) 指定資料庫載入操作期間用於日期/時間轉換的日期和時間格式模式。

  • load.format.localDate:本機日期格式模式。預設值為 dd.MM.yyyy|dd/MM/yyyy|yyyy-MM-dd

  • load.format.dbDate:資料庫日期格式模式。預設值為 yyyy-MM-dd

  • load.format.localTime:本機時間格式模式。預設值為 HH:mm:ss|HH.mm.ss

  • load.format.dbTime:資料庫時間格式模式。預設值為 HH:mm:ss

資料表映射

(選用) 指定舊版和現代資料表名稱之間客戶提供的映射集合。DSNUTILB 公用程式會使用這些映射。

以下列格式指定值:MODERN_TABLE_NAME:LEGACY_TABLE_NAME

請見此處範例:

table-mappings: TABLE_1_NAME : LEGACY_TABLE_1_NAME TABLE_2_NAME : LEGACY_TABLE_2_NAME ... TABLE_*N*_NAME : LEGACY_TABLE_*N*_NAME
注意

當公用程式應用程式啟動時,它會明確記錄所有提供的映射。