

AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) は、新規のお客様に公開されなくなりました。 AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) と同様の機能については、 AWS Mainframe Modernization Service (セルフマネージドエクスペリエンス) をご覧ください。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、[AWS 「 Mainframe Modernization の可用性の変更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マネージドアプリケーションのユーティリティへのアクセスの設定
<a name="applications-m2-ba-utilities"></a>

 AWS Transform for mainframe を使用してメインフレームアプリケーションをリファクタリングする場合、アプリケーションが依存している場合は、IDCAMS、INFUTILB、SORT などのさまざまなレガシープラットフォームユーティリティプログラムのサポートを提供する必要がある場合があります。 AWS Transform for mainframe refactoring は、モダナイズされたアプリケーションと共にデプロイされる専用のウェブアプリケーションを提供します。このウェブアプリケーションには、ユーザーが提供する設定ファイルの `application-utility-pgm.yml` が必要です。この設定ファイルを指定しない場合、ウェブアプリケーションはユーザーのアプリケーションと一緒にデプロイできず、使用できなくなります。

**Topics**
+ [設定プロパティ](#applications-m2-ba-utilities-props)

このトピックでは、`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
```

## 設定プロパティ
<a name="applications-m2-ba-utilities-props"></a>

設定ファイルに次のプロパティを指定できます。

**spring.jta.enabled**  
 (オプション) JTA サポートを有効化するかどうか制御します。ユーティリティでは、この値を `false` に設定することをお勧めします。  

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

**logging.config**  
 (必須) 専用ロガー設定ファイルのパスを指定します。`logback-utility.xml` の名前を使用し、このファイルを最新のアプリケーションの一部として提供することを推奨します。これらのファイルを整理する一般的な方法は、すべてのロガー設定ファイルを同じ場所に置くことです。通常、`/config` は YAML 設定ファイルを含むフォルダのサブフォルダ `/config/logback` に置きます。詳細については、「Logback ドキュメント」の「[第 3 章: logback の設定](https://logback.qos.ch/manual/configuration.html)」を参照してください。  

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

**encoding**  
 (必須) ユーティリティプログラムが使用する文字セットを指定します。z/OS プラットフォームから移行する際、ほとんどの場合、この文字セットは EBCDIC バリアントであり、モダナイズされたアプリケーション用に構成されている文字セットと一致する必要があります。設定しない場合は、デフォルトの `ASCII` が使用されます。  

```
encoding : cp1047
```

**sysPunchEncoding**  
 (オプション) INFUTILB と DSNUTILB が SYSPUNCH ファイルの生成と読み取りに使用する文字セットを指定します。レガシープラットフォームの SYSPUNCH ファイルをそのまま使用する場合、この値は EBCDIC バリアントである必要があります。設定しない場合は、デフォルトの `ASCII` が使用されます。  

```
sysPunchEncoding : cp1047
```

### データソースの設定
<a name="applications-m2-ba-utilities-props-data"></a>

LOAD や UNLOAD などの一部のデータベース関連のユーティリティでは、データソースを介してターゲットデータベースにアクセスする必要があります。 AWS Mainframe Modernization 内の他のデータソース定義と同様に、このアクセスには を使用する必要があります AWS Secrets Manager。次のものは、Secrets Manager の適切なシークレットを指すプロパティです。

#### プライマリデータソース
<a name="applications-m2-ba-utilities-props-data-primary"></a>

これはプライマリビジネスアプリケーションデータベースです。

**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\$1name]**  
(オプション) この形式を使用して、プライマリデータソース接続プール実装を設定するための追加のプロパティを指定できます。  
以下は、タイプが `com.zaxxer.hikari.HikariDataSource` のプライマリデータソースの例です。  

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

#### その他のユーティリティデータソース
<a name="applications-m2-ba-utilities-props-data-other"></a>

プライマリデータソースに加えて、他のユーティリティデータソースを指定することもできます。

**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 を指定します。`spring.aws.client.utility.pgm.datasources.names` で指定された名前のリストに [dsname] を指定します。  

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

**spring.aws.client.utility.pgm.datasources.[dsname].dbname**  
(オプション) データベース名がデータベースシークレットに直接指定されていない場合は、`dbname` プロパティを使用してターゲットデータベース名を指定します。`spring.aws.client.utility.pgm.datasources.names` で指定された名前のリストに [dsname] を指定します。  

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

**spring.aws.client.utility.pgm.datasources.[dsname].type**  
(オプション) 使用する接続プール実装の完全修飾名を指定します。デフォルト値は `com.zaxxer.hikari.HikariDataSource` です。`spring.aws.client.utility.pgm.datasources.names` で指定された名前のリストに [dsname] を指定します。  

```
spring.aws.client.utility.pgm.datasources.dsname1.type: target-datasource-type
```
ユーティリティデータソースタイプが `com.zaxxer.hikari.HikariDataSource` の場合、次のように追加のプロパティを指定できます。

**spring.datasource.[dsname].[property\$1name]**  
(オプション) ユーティリティデータソース接続プール実装を設定する追加のプロパティのコレクションを指定します。`spring.aws.client.utility.pgm.datasources.names` で指定された名前のリストに [dsname] を指定します。プロパティは `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\$1STRICT* がデフォルトになります。符号の処理には厳密な定義を使用してください。文字セットが 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\$1MODIFIED*: 符号処理には変更された定義を使用します。EBDIC と ASCII のどちらでも、符号数字を表す文字のリストは同じです。つまり、`+0`～`+9` は `{` \$1 `A`～`I` に、`-0`～`-9` は `}` \$1 `J`～`R` にマッピングされます。
+ *AS400*: iSeries (AS400) プラットフォームから提供されるモダナイズされたレガシーアセットに使用します。

```
zonedMode:EBCDIC_STRICT
```

**jcl.type**  
 (オプション) モダナイズされた JCL スクリプトのレガシータイプを示します。IDCAMS ユーティリティは、この設定を使用して、呼び出し元の JCL がタイプ `vse` である場合、リターンコードを調整します。有効な値は次のとおりです。  
+ `mvs` (デフォルト)
+ `vse`

```
jcl.type : mvs
```

### データベースアンロードのユーティリティに関連するプロパティ
<a name="applications-m2-ba-utilities-props-unload"></a>

 これらのプロパティを使用して、データベーステーブルをデータセットにアンロードするユーティリティを設定します。次のプロパティは、すべてオプションです。

 この例は、使用可能なすべてのアンロードプロパティを示しています。

```
# 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 インジケータバイトを指定します。これは、データ値の右に (文字列として) 16 進数値を加えたものです。指定できる値は次の 2 つです。  
+ *whenNull*: データ値が null の場合に 16 進数値を追加します。デフォルトは `6`` です。代わりに、大きい値 `FF` が使われることもあります。

  ```
  unload.nbi.whenNull: "6F"
  ```
+ *whenNotNull*: データ値は null ではないが、列に null を許容する場合に 16 進数値を追加します。デフォルトは `00` (小さい値) です。

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

**useDatabaseConfiguration**  
 (オプション) 日付と時刻形式を決めるプロパティを指定します。UNLOAD クエリの日付/時刻オブジェクトを処理するために使用されます。デフォルトは `false` です。  
+ `true` に設定すると、メインの設定ファイル (`application-main.yml`) の `pgmDateFormat`、`pgmTimeFormat`、および `pgmTimestampFormat` プロパティを使用します。
+ `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` に設定すると、アンロードの目的から、列の内容はスペース文字ではなく、空の文字列として扱われます。Oracle データベースエンジンの場合に限り、このフラグを `true` に設定してください。  

```
unload.varCharIsNull: false
```

**columnFiller**  
 (オプション) アンロードされた列を varchar 列のパディングに使用する値を指定します。指定できる値は、スペースまたは低い値です。デフォルトはスペースです。  

```
unload.columnFiller: space
```

### データベースのロード関連のプロパティ
<a name="applications-m2-ba-utilities-props-load"></a>

 これらのプロパティを使用して、データセットレコードをターゲットデータベースにロードするユーティリティ (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
```

**format**  
 (オプション) データベースロードオペレーション中の日付/時刻変換に使用する日付と時刻の形式パターンを指定します。  
+ `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` です。

**table-mappings**  
 (オプション) レガシーテーブル名とモダナイズされたテーブル名の間の顧客提供のマッピングコレクションを指定します。DSNUTILB ユーティリティプログラムでは、これらのマッピングを使用します。  
値は、*MODERN\$1TABLE\$1NAME : LEGACY\$1TABLE\$1NAME* の形式で指定します。  
以下がその例です。  

```
table-mappings:
 TABLE_1_NAME : LEGACY_TABLE_1_NAME
 TABLE_2_NAME : LEGACY_TABLE_2_NAME
 ...
 TABLE_*N*_NAME : LEGACY_TABLE_*N*_NAME
```
ユーティリティアプリケーションが起動すると、提供されたすべてのマッピングが明示的にログに記録されます。