19.9.4. Configurer EJB 2.x Container-Managed Persistence

Le sous-système EJB 2.x Container Managed Persistence (CMP) peut être configuré pour spécifier un certain nombre de générateurs de clés. Les générateurs de clés sont utilisés pour produire des clés uniques pour identifier chaque entité persistée par le service CMP.
Il existe deux types de générateurs de clés: les générateurs de clés basés-UUID et les générateurs de clés HiLO
Les générateurs de clés basés-UUID
Un générateur de clés basé-UUID crée des clés qui utilisent un Identifiant Unique Universel (UUI). Les générateurs de clés UUID ont besoin uniquement d'avoir un nom unique; ils n'ont pas d'autre configuration.
Les générateurs de clés basé-UUID peuvent être ajoutés par le CLI avec la syntaxe suivante.
 /subsystem=cmp/uuid-keygenerator=UNIQUE_NAME:add 

Exemple 19.16. Ajouter le générateur de clés UUID

Pour ajouter un générateur de clés basé-UUID ayant pour nom uuid_identities, utiliser cette commande CLI :
/subsystem=cmp/uuid-keygenerator=uuid_identities:add
La configuration XML créée par cette commande est :
<subsystem xmlns="urn:jboss:domain:cmp:1.0"> 
   <key-generators>
      <uuid name="uuid_identities" />
   </key-generators>
</subsystem>
Générateurs de clés HiLo
Les générateurs de clés HiLo utilisent une base de données pour créer et stocker les clés d'identité des enttités. Le générateur de clés HiLo doivent posséder des noms uniques et sont configurés avec des propriétés qui spécifient la source de données utilisée pour stocker les données, ainsi que les noms du tableau et colonnes qui stockent les clés.
Les générateurs de clés HiLo peuvent être ajoutés par le CLI grâce à la syntaxe de commande suivante:
 /subsystem=cmp/hilo-keygenerator=UNIQUE_NAME/:add(property=value, property=value, ...) 

Exemple 19.17. Ajouter un générateur de clés HiLo

/subsystem=cmp/hilo-keygenerator=DB_KEYS/:add(create-table=false,data-source=java:jboss/datasources/ExampleDS,drop-table=false,id-column=cmp_key_ids,select-hi-ddl=select max(cmp_key_ids) from cmp_key_seq,sequence-column=cmp_key_seq,table-name=cmp-keys))
La configuration XML créée par cette commande est :
<subsystem xmlns="urn:jboss:domain:cmp:1.0"> 
   <key-generators>
      <hilo name="DB_KEYS">
         <create-table>false</create-table>
         <data-source>java:jboss/datasources/ExampleDS</data-source>
         <drop-table>false</drop-table>
         <id-column>cmp_key_ids</id-column>
         <select-hi-ddl>select max(cmp_key_ids) from cmp_key_seq</select-hi-ddl>
         <sequence-column>cmp_key_seq</sequence-column>
         <table-name>cmp-keys</table-name>
      </hilo>
   </key-generators>
</subsystem>