

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.

# Erreur de résolution des problèmes : délai expiré en attendant que le nom de l'ensemble de données soit déverrouillé
<a name="ba-blusam-timeout"></a>

Cette page explique comment résoudre votre erreur lorsque vous constatez qu'une autre application d'un environnement verrouille un ensemble de données partagé.
+ Moteur : AWS Transform pour mainframe
+ Composant : Blusam

Si vous voyez cette erreur dans les CloudWatch journaux Amazon d'une application de modernisation de AWS mainframe utilisant le moteur AWS Transform for mainframe et exécutée dans un environnement utilisant le modèle de haute disponibilité, cela indique qu'une autre application bloque un ensemble de données partagé. Généralement, cette situation se produit si l'autre application se bloque ou échoue et ne libère pas le verrou.

Recherchez une application défaillante et vérifiez si elle utilise le même ensemble de données que celui indiqué dans le message d'erreur. Vérifiez si l'application s'exécute dans un environnement d'exécution avec le modèle de haute disponibilité. L'application qui a déclenché l'exception de délai d'expiration ne peut pas continuer et affiche le `Failed` statut.

## Cause courante
<a name="ba-blusam-timeout-cause"></a>

L'application `example-app-1` tente de verrouiller un enregistrement `example-record-1` pour une opération d'écriture. Cette opération crée à la fois un verrou sur l'ensemble de données`example-dataset-1`, qui en est propriétaire`example-record-1`, et un verrou sur `example-record-1` lui-même. Maintenant`example-app-2`, une autre application essaie de verrouiller le même enregistrement`example-record-1`. L'ensemble de données et l'enregistrement étant déjà verrouillés, il `example-app-2` attend que le verrou soit déverrouillé. En cas de `example-app-1` panne, le verrouillage bloqué sur l'ensemble de données existe `example-dataset-1` toujours, ce qui entraîne l'annulation de sa tentative `example-app-2` d'écriture et le déclenchement d'une exception de délai d'expiration. Cette situation de blocage empêche toutes les applications d'y accéder. `example-dataset-1`

## Résolution
<a name="ba-blusam-timeout-resolution"></a>

Pour résoudre le problème immédiatement, vous pouvez forcer le déverrouillage. Pour éviter qu'une situation similaire ne se reproduise à l'avenir, vous pouvez configurer deux paramètres qui contrôlent le mécanisme de réparation Blusam automatique.

## Forcer le verrou à le relâcher
<a name="ba-blusam-timeout-force"></a>

Le gestionnaire de Blusam verrous utilise Amazon ElastiCache (Redis OSS) pour fournir des verrous partagés entre les applications. Pour débloquer les verrous ElastiCache, utilisez l'utilitaire Redis CLI. Vous ne pouvez pas supprimer un verrouillage d'enregistrement individuel. Vous devez supprimer tous les verrous du jeu de données propriétaire. Procédez comme suit :

1. Connectez-vous à votre à ElastiCache l'aide de la commande suivante :

   ```
   redis-cli -h {{hostname}} -p {{port}}
   ```

   Vous trouverez les informations vous concernant ElastiCache dans la ElastiCache console à l'adresse [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. Entrez votre mot de passe.

1. Entrez la commande que vous souhaitez exécuter, comme suit :    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/ba-blusam-timeout.html)

## Configurer le mécanisme de réparation Blusam automatique
<a name="ba-blusam-timeout-auto-repair"></a>

Le gestionnaire de Blusam verrous inclut un mécanisme de réparation automatique pour éviter les blocages sur les ensembles de données ou les enregistrements. Vous pouvez ajuster les paramètres suivants dans la définition de l'application (`application-main.yml`) pour configurer le mécanisme de réparation automatique :
+ `locksDeadTime`: fait référence à la durée maximale pendant laquelle une application peut maintenir un verrou. Lorsque ce délai est écoulé, le verrou est déclaré expiré et relâché immédiatement. La `locksDeadTime` valeur est exprimée en millisecondes et la valeur par défaut est 1000.
+ `locksCheck`: définit la stratégie du gestionnaire de Blusam verrous pour vérifier les verrous. Tous les Blusam blocages ElastiCache sont horodatés et ont une date d'expiration. La valeur du `locksCheck` paramètre détermine si les verrous expirés sont supprimés.
  + `off`: aucune vérification n'est exécutée à aucun moment. Des blocages peuvent se produire. (Non recommandé)
  + `reboot`: les vérifications sont exécutées lorsqu'une instance d'application AWS Mainframe Modernization exécutée dans un environnement d'exécution AWS Mainframe Modernization est démarrée ou redémarrée. Tous les verrous expirés sont immédiatement libérés. (Par défaut)
  + `timeout`: les vérifications sont exécutées lorsqu'une instance de l'application AWS Mainframe Modernization exécutée dans un environnement d'exécution AWS Mainframe Modernization est démarrée ou redémarrée, ou lorsqu'un délai expire lors d'une tentative de verrouillage d'un ensemble de données. Les verrous expirés sont immédiatement libérés.

Pour plus d'informations sur la définition d'une application AWS Transform pour mainframe, consultez[AWS Exemple de définition d'une application Transform pour mainframe](applications-m2-definition.md#applications-m2-definition-ba).

## Blusamgestionnaire de serrures
<a name="ba-blusam-timeout-locks-mgr"></a>

Dans le contexte d'un environnement d'exécution de modernisation du AWS mainframe utilisant le modèle de haute disponibilité, une application AWS Transform for mainframe peut être déployée plusieurs fois. Pour les applications qui gèrent Blusam des ensembles de données, des problèmes d'accès simultanés peuvent survenir. Le gestionnaire de Blusam verrous garantit l'intégrité des données et gère l'accès en lecture et en écriture aux enregistrements et aux ensembles de données en fournissant des verrous partagés entre les applications qui les utilisent ElastiCache. Ce mécanisme permet à plusieurs applications de lire l'enregistrement simultanément et garantit qu'une seule application à la fois écrit l'enregistrement.

### Serrures d'écriture
<a name="ba-blusam-timeout-locks-mgr-write"></a>

Pour mettre à jour ou supprimer un enregistrement spécifique, l'application doit d'abord verrouiller l'ensemble de données propriétaire de l'enregistrement, puis verrouiller l'enregistrement lui-même. Lorsque l'enregistrement est verrouillé, le verrouillage du jeu de données est libéré et les autres enregistrements du même ensemble de données peuvent être utilisés. Lorsque l'opération de mise à jour ou de suppression est terminée, le verrouillage des enregistrements conservés est libéré. Une seule application à la fois peut mettre à jour l'enregistrement, ce qui empêche les autres applications de lire ou d'écrire jusqu'à ce que le verrou soit relâché, si la politique d'application définie autorise l'attente de publication.

### Lire les verrous
<a name="ba-blusam-timeout-locks-mgr-read"></a>

Tant qu'aucun verrou d'écriture n'est maintenu sur l'enregistrement ou le jeu de données, plusieurs applications peuvent lire les mêmes enregistrements en même temps. Pour verrouiller un enregistrement pour une opération d'écriture, tous les verrous de lecture doivent être libérés.

**Note**  
Le gestionnaire de Blusam verrous gère l'accès depuis plusieurs threads dans une application donnée en utilisant le même mécanisme de verrouillage.