Regroupement séquentiel pour la persistance gérée par conteneur dans les modules EJB assemblés

Après avoir assemblé un module EJB (Enterprise JavaBeans) contenant des beans CMP (Container Managed Persistence, persistance gérée par conteneur), vous pouvez éviter que certains types d'exceptions liées à la base de données ne se produisent en phase d'exécution de l'application. Le groupement par séquence vous permet d'indiquer l'ordre dans lequel les beans entity mettent à jour les tables des bases de données relationnelles.

Remarque : Les beans entity ne sont pas pris en charge dans les modules EJB 3.x.

Elimination des exceptions résultant des violations de l'intégrité référentielle

Le groupement par séquence est particulièrement utile pour empêcher les violations de l'intégrité référentielle. Les règles d'administration de l'intégrité référentielle d'une base de données définissent des règles d'enregistrement et de suppression des données dans les tables de base de données pour maintenir la logique relationnelle. Toutefois, les exigences liées à l'exécution pour la gestion de la persistance des beans peuvent amener l'application à violer les règles d'intégrité référentielle, ce qui peut provoquer des exceptions de base de données. Les exigences liées à l'exécution sont les suivantes :
  • Les opérations de création et de suppression des beans entity sont associées directement à la base de données lors d'un appel de méthode.
  • Les modifications de bean entity sont mises en cache par le conteneur EJB jusqu'à ce qu'une méthode finder soit appelée ou que la transaction se termine.
Par conséquent, l'ordre dans lequel les beans entity mettent à jour la base de données est imprévisible. Cette condition aléatoire fait que l'application risque vivement de violer l'intégrité référentielle de la base de données. Bien que la mise en cache des opérations pour le traitement par lots se substitue aux exigences liées à l'exécution, elle ne garantit pas une séquence de persistance de bean conforme aux règles d'administration de l'intégrité référentielle.

La seule manière de garantir une séquence de persistance conforme aux règles d'administration de l'intégrité référentielle est de désigner la séquence, ce que vous effectuez dans l'éditeur de descripteur de déploiement d'EJB, compris dans l'outil d'assemblage. La fonction de groupement par séquence permet d'affecter des beans à des groupes CMP. Vous devez définir, dans chaque groupe, l'ordre dans lequel le gestionnaire de persistance insère des beans dans la base de données pour effectuer des mises à jour sans violer l'intégrité référentielle.

Pour des instructions détaillées sur la désignation des groupes de séquences, voir la rubrique Définition de l'environnement d'exécution des groupes de séquence pour la persistance gérée par conteneur. Consultez votre administrateur de base de données sur les règles d'intégrité référentielle que vous devez respecter pour effectuer des synchronisations.

Réduction des risques d'exception pour les schémas de contrôle des accès concurrents optimiste

La fonction de groupement par séquence peut également réduire le risque de génération d'exceptions d'annulation de transaction pour les beans entity configurés pour le contrôle des accès concurrents optimiste. Dans ces schémas de contrôle d'accès concurrents, les verrous de base de données sont maintenus pendant une durée minimale pour permettre à un nombre maximum de transactions d'accéder aux données de manière cohérente. L'état relativement non restreint de la base de données peut provoquer des exceptions d'annulation de transaction pour les deux raisons courantes qui suivent :
  • Lorsque des transactions concurrentes tentent de verrouiller la même ligne de table, la base de données se bloque.
  • Les transactions peuvent être effectuées dans un ordre qui viole la logique applicative.

Utilisez la fonction de groupement par séquence pour séquencer la persistance des beans et permettre ainsi de prévenir ces scénarios.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_sequence
Nom du fichier : cejb_sequence.html