

AWS Le service de modernisation du mainframe (expérience de l'environnement d'exécution géré) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires au service de modernisation AWS du mainframe (expérience de l'environnement d'exécution géré), explorez le service de modernisation AWS du mainframe (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez la section [Modification de la disponibilité de la modernisation du AWS mainframe](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration de l'accès aux utilitaires pour les applications gérées
<a name="applications-m2-ba-utilities"></a>

Lorsque vous refactorisez une application mainframe avec AWS Transform for mainframe, vous devrez peut-être fournir un support pour divers programmes utilitaires de plate-forme existants, tels que IDCAMS, INFUTILB, SORT, etc., si votre application en dépend. AWS Transform for mainframe refactoring fournit cet accès grâce à une application Web dédiée qui est déployée parallèlement à des applications modernisées. Cette application Web nécessite un fichier de `application-utility-pgm.yml` configuration que vous devez fournir. Si vous ne fournissez pas ce fichier de configuration, l'application Web ne pourra pas être déployée en même temps que votre application et ne sera pas disponible.

**Topics**
+ [Propriétés de configuration](#applications-m2-ba-utilities-props)

Cette rubrique décrit toutes les propriétés possibles que vous pouvez spécifier dans le fichier de `application-utility-pgm.yml` configuration, ainsi que leurs valeurs par défaut. La rubrique décrit les propriétés obligatoires et facultatives. L'exemple suivant est un fichier de configuration complet. Il répertorie les propriétés dans l'ordre que nous recommandons. Vous pouvez utiliser cet exemple comme point de départ pour votre propre fichier de configuration.

```
# 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
```

## Propriétés de configuration
<a name="applications-m2-ba-utilities-props"></a>

Vous pouvez spécifier les propriétés suivantes dans votre fichier de configuration.

**spring.jta.enabled**  
 (Facultatif) Contrôle si le support JTA est activé. Pour les utilitaires, nous vous recommandons de définir cette valeur sur`false`.  

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

**logging.config**  
 (Obligatoire) Spécifie le chemin d'accès au fichier de configuration de l'enregistreur dédié. Nous vous recommandons d'utiliser le nom `logback-utility.xml` et de fournir ce fichier dans le cadre de l'application modernisée. La méthode courante pour organiser ces fichiers consiste à placer tous les fichiers de configuration de l'enregistreur au même endroit, généralement dans le sous-dossier contenant le dossier `/config/logback` contenant les fichiers de configuration YAML. `/config` Pour plus d'informations, consultez le [chapitre 3 : Configuration du logback](https://logback.qos.ch/manual/configuration.html) dans la documentation Logback.   

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

**encoding**  
 (Obligatoire) Spécifie le jeu de caractères utilisé par le programme utilitaire. Dans la plupart des cas, lorsque vous migrez depuis des z/OS plateformes, ce jeu de caractères est une variante EBCDIC et doit correspondre au jeu de caractères configuré pour les applications modernisées. La valeur par défaut si elle n'est pas définie est`ASCII`.  

```
encoding : cp1047
```

**sysPunchEncoding**  
 (Facultatif) Spécifie le jeu de caractères utilisé par INFUTILB et DSNUTILB pour générer et lire les fichiers SYSPUNCH. Si vous utilisez les fichiers SYSPUNCH de l'ancienne plateforme tels quels, cette valeur doit être une variante EBCDIC. La valeur par défaut si elle n'est pas définie est`ASCII`.  

```
sysPunchEncoding : cp1047
```

### Configuration de source de données
<a name="applications-m2-ba-utilities-props-data"></a>

Certains utilitaires liés aux bases de données, tels que LOAD et UNLOAD, nécessitent l'accès à une base de données cible via une source de données. Comme les autres définitions de sources de données dans AWS Mainframe Modernization, cet accès nécessite que vous AWS Secrets Manager utilisiez. Les propriétés qui pointent vers les secrets appropriés dans Secrets Manager sont les suivantes :

#### Source de données principale
<a name="applications-m2-ba-utilities-props-data-primary"></a>

Il s'agit de la base de données d'applications métier principale.

**spring.aws.client.datasources.primary.secret**  
 (Facultatif) Spécifie le secret dans Secrets Manager qui contient les propriétés de la source de données.  

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

**spring.aws.client.datasources.primary.dbname**  
(Facultatif) Spécifie le nom de la base de données cible s'il n'est pas fourni directement dans le secret de base de données, avec la `dbname` propriété.   

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

**spring.aws.client.datasources.primary.type**  
(Facultatif) Spécifie le nom complet de l'implémentation du pool de connexions à utiliser. La valeur par défaut est `com.zaxxer.hikari.HikariDataSource`.  

```
spring.aws.client.datasources.primary.type: target-datasource-type
```
Si le type de la source de données principale est`com.zaxxer.hikari.HikariDataSource`, vous pouvez spécifier des propriétés supplémentaires comme suit :

**spring.datasource.primary. [nom\$1propriété]**  
(Facultatif) Vous pouvez utiliser ce format pour spécifier des propriétés supplémentaires pour configurer l'implémentation d'un pool de connexions à une source de données principale.  
Voici un exemple de source de données principale de ce type`com.zaxxer.hikari.HikariDataSource`.  

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

#### Autres sources de données utilitaires
<a name="applications-m2-ba-utilities-props-data-other"></a>

Outre la source de données principale, vous pouvez fournir d'autres sources de données utilitaires.

**spring.aws.client.utility.pgm.datasources.names**  
(Facultatif) Spécifie la liste des noms des sources de données utilitaires.  

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

**spring.aws.client.utility.pgm.sources de données. [nom de domaine] .secret**  
(Facultatif) Spécifie l'ARN secret dans SSM qui héberge les propriétés de la source de données. Indiquez [dsname] dans la liste des noms spécifiée dans`spring.aws.client.utility.pgm.datasources.names`.  

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

**spring.aws.client.utility.pgm.sources de données. [nom de domaine] .dbname**  
(Facultatif) Spécifie le nom de la base de données cible s'il n'est pas fourni directement dans le secret de base de données à l'aide de la `dbname` propriété. Indiquez [dsname] dans la liste des noms spécifiée dans`spring.aws.client.utility.pgm.datasources.names`.  

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

**spring.aws.client.utility.pgm.sources de données. [nom de domaine] .type**  
(Facultatif) Spécifie le nom complet de l'implémentation du pool de connexions à utiliser. La valeur par défaut est `com.zaxxer.hikari.HikariDataSource`. Indiquez [dsname] dans la liste des noms spécifiée dans`spring.aws.client.utility.pgm.datasources.names`.  

```
spring.aws.client.utility.pgm.datasources.dsname1.type: target-datasource-type
```
Si le type de source de données utilitaire est`com.zaxxer.hikari.HikariDataSource`, vous pouvez fournir des propriétés supplémentaires comme suit :

**spring. Source de données. [nom de domaine]. [nom\$1propriété]**  
(Facultatif) Spécifie un ensemble de propriétés supplémentaires pour configurer l'implémentation d'un pool de connexions à une source de données utilitaire. Indiquez [dsname] dans la liste des noms spécifiée dans`spring.aws.client.utility.pgm.datasources.names`. Spécifiez les propriétés au format suivant : `property_name : value`  
Voici un exemple de sources de données utilitaires supplémentaires de type `com.zaxxer.hikari.HikariDataSource` :   

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

**treatLargeNumberAsInteger**  
 (Facultatif) Lié aux spécificités du moteur de base de données Oracle et à l'utilisation des DSNTEP4 utilitaires DSNTEP2/. Si vous définissez cet indicateur sur true, les grands nombres provenant de la base de données Oracle (NUMBER (38,0)) sont traités comme des entiers. Valeur par défaut : `false`  

```
treatLargeNumberAsInteger : false
```

**Mode zoné**  
(Facultatif) Définit le mode zoné pour coder ou décoder les types de données zonés. Ce paramètre influence la façon dont les chiffres des signes sont représentés. Les valeurs suivantes sont valides :  
+ *EBCDIC\$1STRICT* : Par défaut. Utilisez une définition stricte pour la gestion des panneaux. Selon que le jeu de caractères est EBCDIC ou ASCII, la représentation numérique des signes utilise les caractères suivants : 
  + Caractères EBCDIC correspondant à des octets (`Cn+Dn`) pour représenter des plages de chiffres positifs et négatifs (`+0`à`+9`, `-0` à`-9`). Les caractères sont affichés sous la forme `{``I`, `A` à`}`, `J` à `R`
  + Caractères ASCII correspondant à des octets (`3n+7n`) pour représenter des plages de chiffres positifs et négatifs (`+0`à`+9`, `-0` à`-9`). Les caractères sont affichés comme `0` `9` suit `p` : `y`
+ *EBCDIC\$1MODIFIED : utilisez une définition modifiée* pour la gestion des signes. Pour l'EBDIC et l'ASCII, la même liste de caractères représente les chiffres du signe, c'est-à-dire `+9` mappés `+0` vers `{` \$1 vers `I` et mappés `A` vers \$1 `-0` vers`-9`. `}` `J` `R` \$1 
+ *AS400*: à utiliser pour les actifs existants modernisés provenant des plateformes iSeries (AS400).

```
zonedMode:EBCDIC_STRICT
```

**jcl type**  
 (Facultatif) Indique le type existant de scripts JCL modernisés. L'utilitaire IDCAMS utilise ce paramètre pour personnaliser le code de retour si le JCL invoquant est de type. `vse` Les valeurs valides sont les suivantes :  
+ `mvs` (par défaut)
+ `vse`

```
jcl.type : mvs
```

### Propriétés associées aux utilitaires de déchargement de base de données
<a name="applications-m2-ba-utilities-props-unload"></a>

 Utilisez ces propriétés pour configurer les utilitaires qui déchargent les tables de base de données vers des ensembles de données. Toutes les propriétés suivantes sont facultatives.

 Cet exemple montre toutes les propriétés de déchargement possibles.

```
# 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**  
 (Facultatif) Spécifie une valeur entière qui représente le décalage de points de code SQL utilisé sur les données. La valeur par défaut est 0. Cela signifie qu'aucun changement de point de code n'est effectué. Alignez ce paramètre avec le paramètre de décalage des points de code SQL utilisé pour les applications modernisées. Lorsque le décalage des points de code est utilisé, la valeur la plus courante pour ce paramètre est 384.  

```
unload.sqlCodePointShift: 0
```

**nbi**  
 (Facultatif) Spécifie un octet indicateur nul. Il s'agit d'une valeur hexadécimale (sous forme de chaîne) ajoutée à droite de la valeur des données. Les deux valeurs possibles sont les suivantes :  
+ *WhenNull* : ajoutez la valeur hexadécimale lorsque la valeur des données est nulle. La valeur par défaut est `6``. Parfois, la valeur la plus élevée `FF` est utilisée à la place.

  ```
  unload.nbi.whenNull: "6F"
  ```
+ *whenNotNull*: Ajoutez la valeur hexadécimale lorsque la valeur des données n'est pas nulle, mais que la colonne est nullable. La valeur par défaut est `00` (faible valeur).

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

**useDatabaseConfiguration**  
 (Facultatif) Spécifie les propriétés de formatage de la date et de l'heure. Ceci est utilisé pour traiter les date/time objets dans les requêtes UNLOAD. La valeur par défaut est `false`.  
+ S'il est défini sur `true``pgmDateFormat`, utilise les `pgmTimestampFormat` propriétés`pgmTimeFormat`, et du fichier de configuration principal (`application-main.yml`).
+ S'il est défini sur`false`, utilise les propriétés de mise en forme de date et d'heure suivantes :
  + `unload.format.date`: Spécifie un modèle de mise en forme de date. La valeur par défaut est `MM/dd/yyyy`.
  + `unload.format.time`: Spécifie un modèle de formatage de l'heure. La valeur par défaut est `HH.mm.ss`.
  + `unload.format.timestamp`: Spécifie un modèle de formatage d'horodatage. La valeur par défaut est `yyyy-MM-dd-HH.mm.ss.SSSSSS`.

**Taille du morceau**  
 (Facultatif) Spécifie la taille des segments de données utilisés pour créer des ensembles de données SYSREC. Ces ensembles de données sont la cible de l'opération de déchargement des ensembles de données, avec des opérations parallèles. La valeur par défaut est `0` (pas de morceaux).  

```
unload.chunkSize:0
```

**Taille de récupération**  
 (Facultatif) Spécifie la taille d'extraction des données. La valeur est le nombre d'enregistrements à récupérer simultanément lorsqu'une stratégie de segmentation de données est utilisée. Valeur par défaut : `0`.  

```
unload.fetchSize:0
```

**varCharIsNull**  
 (Facultatif) Spécifie comment gérer une colonne varchar non nullable dont le contenu est vide. La valeur par défaut est `false`.  
 Si vous définissez cette valeur sur`true`, le contenu de la colonne est traité comme une chaîne vide à des fins de déchargement, au lieu d'une seule chaîne d'espace. Définissez cet indicateur sur `true` pour le cas du moteur de base de données Oracle uniquement.  

```
unload.varCharIsNull: false
```

**Remplisseur de colonnes**  
 (Facultatif) Spécifie la valeur à utiliser pour le remplissage des colonnes déchargées dans les colonnes varchar. Les valeurs possibles sont l'espace ou les valeurs faibles. La valeur par défaut est l'espace.  

```
unload.columnFiller: space
```

### Propriétés liées au chargement de la base de données
<a name="applications-m2-ba-utilities-props-load"></a>

 Utilisez ces propriétés pour configurer des utilitaires qui chargent des enregistrements d'ensembles de données dans une base de données cible, par exemple DSNUTILB. Toutes les propriétés suivantes sont facultatives.

 Cet exemple montre toutes les propriétés de charge possibles.

```
# 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**  
 (Facultatif) Spécifie une valeur entière qui représente le décalage de points de code SQL utilisé sur les données. La valeur par défaut est 0, ce qui signifie que les applications ne modifient aucun point de code. Alignez ce paramètre avec le paramètre de décalage des points de code SQL utilisé pour les applications modernisées. Lorsque vous utilisez des décalages de points de code, la valeur la plus courante pour ce paramètre est 384.  

```
load.sqlCodePointShift : 384
```

**batchSize**  
 (Facultatif) Spécifie une valeur entière qui représente le nombre d'enregistrements à traiter avant d'envoyer une instruction de lot réelle à la base de données. La valeur par défaut est 0.  

```
load.batchSize: 500
```

**format**  
 (Facultatif) Spécifie les modèles de mise en forme de date et d'heure à utiliser pour les conversions de date et d'heure lors des opérations de chargement de la base de données.  
+ `load.format.localDate`: modèle de formatage de date local. La valeur par défaut est `dd.MM.yyyy|dd/MM/yyyy|yyyy-MM-dd`.
+ `load.format.dbDate`: modèle de formatage des dates de base de données. La valeur par défaut est `yyyy-MM-dd`.
+ `load.format.localTime`: modèle de formatage de l'heure locale. La valeur par défaut est `HH:mm:ss|HH.mm.ss`.
+ `load.format.dbTime`: modèle de formatage horaire de la base de données. La valeur par défaut est `HH:mm:ss`.

**mappages de tables**  
 (Facultatif) Spécifie un ensemble de mappages fournis par le client entre les noms de table anciens et modernes. Le programme utilitaire DSNUTILB utilise ces mappages.  
Spécifiez les valeurs au format suivant : *MODERN\$1TABLE\$1NAME : LEGACY\$1TABLE\$1NAME*  
Voici un exemple :  

```
table-mappings:
 TABLE_1_NAME : LEGACY_TABLE_1_NAME
 TABLE_2_NAME : LEGACY_TABLE_2_NAME
 ...
 TABLE_*N*_NAME : LEGACY_TABLE_*N*_NAME
```
Lorsque l'application utilitaire démarre, elle enregistre explicitement tous les mappages fournis.