• Home
  • Docker
  • Kubernetes
  • LLMs
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • Archived
EJB | Gestion des accès concurrents à un singleton bean
  1. Annotations @ConcurrencyManagement, @ConcurrencyManagement, @AccessTimeout
    1. Annotation @ConcurrencyManagement
    2. Annotation @Lock
    3. Annotation @AccessTimeout
  2. Enums ConcurrencyManagementType, LockType
    1. Enum ConcurrencyManagementType
    2. Enum LockType
  3. Exemple (1) : Gestion des accès concurrents par le container EJB
  4. Exemple (2) : Gestion des accès concurrents par le code de la session bean

  1. Annotations @ConcurrencyManagement, @Lock, @AccessTimeout
    Annotations :

    1. Annotation @ConcurrencyManagement
      Code source (JBoss) de l'annotation @ConcurrencyManagement :
    2. Annotation @Lock
      Code source (JBoss) de l'annotation @Lock :

      Notes :
      - Si l'annotation est appliquée au niveau de la classe alors toutes les méthodes de la classe vont avoir le type du lock choisi pour la classe.
      - Si l'annotation est appliquée au niveau de la méthode alors celle ci va avoir son propre type de lock.
    3. Annotation @AccessTimeout
      Code source (JBoss) de l'annotation @AccessTimeout :

      Cette annotation permet de specifier un temp maximal qu'un lock peut être conservé sur une méthode.
      Si le lock n'est pas libéré avant ce temps, une exception sera levé et le lock sur la méthode sera déverrouillé.

      Si l'annotation est appliquée au niveau de la classe alors toutes les méthodes de la classe vont hériter les configurations du timeout définies pour la classe.
      Si l'annotation est appliquée au niveau de la méthode alors celle ci va avoir son propre configuration du timeout.

      L'attribut value de l'annotation @AccessTimeout définit le temps du timeout.
      La valeur "0" indique au container que les accès concurrents à la méthode sont interdits.
      La valeur "-1" indique un timeout infini.
      Une valeur inférieur à "-1" est invalide.

      L'attribut unit de l'annotation @AccessTimeout définit l'unité du temps du timeout.
  2. Annotations @ConcurrencyManagement, @ConcurrencyManagement, @AccessTimeout
    Enums :

    1. Enum ConcurrencyManagementType
      Code source (JBoss) de l'enum ConcurrencyManagementType :

    2. Enum LockType
      Code source (JBoss) de l'enum LockType :


      Notes :
      - Une fois le lock de type WRITE est obtenu, aucun accès à aucune des méthodes du singleton bean ne sera permis, et cela jusqu'à ce que le lock soit libéré (soit parce que l'exécution de la méthode est complétée ou un timeout est levé).
  3. Exemple (1) : Gestion des accès concurrents par le container EJB
  4. Exemple (2) : Gestion des accès concurrents par le code de la session bean

© 2025  mtitek