本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定受管應用程式的公用程式存取權
當您重構具有 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
到}
、I
J
到R
-
對應至位元組 (
3n+7n
) 的 ASCII 字元,代表正負位數範圍 (+0
到+9
、-0
到-9
)。字元顯示為0
到9
,p
顯示為y
-
-
EBCDIC_MODIFIED:使用修改後的符號處理定義。對於 EBDIC 和 ASCII,相同的字元清單代表符號數字,也就是
+0
+9
映射到{
+A
到I
和-0
-9
映射到}
+J
到R
。 \ -
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
, 會使用主組態檔案 () 中的pgmDateFormat
pgmTimeFormat
、 和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
注意
當公用程式應用程式啟動時,它會明確記錄所有提供的映射。