Cumul cluster (Modèle)

De Wiki1000
(Différences entre les versions)
(Création des cumuls par le framework)
(Création des cumuls par le framework)
Ligne 13 : Ligne 13 :
  
 
La création d'un doublon dans la base de données '''DOIT''' échouer, il est donc impératif de définir une [[Règles_uniques_(model)|'''clé unique''']] sur les critères du cumul.
 
La création d'un doublon dans la base de données '''DOIT''' échouer, il est donc impératif de définir une [[Règles_uniques_(model)|'''clé unique''']] sur les critères du cumul.
 +
 +
{{tip|Si les critères contiennent des références qui peuvent être nulle, la clé unique doit utiliser l'option "Indexer les références nulles"}}
  
 
===Création des cumuls par le code métier===
 
===Création des cumuls par le code métier===

Version du 18 septembre 2017 à 15:10

L'option "Gérer ce cumul en mode cluster" permet de se prémunir contre la création de doublon de cumul par des utilisateurs concurrents.

Ce cas est particulièrement probable dans le cas de traitements d'import concurrents en mode cluster.

Tip-20px.png Tip : Cette option doit être complétée par l'ajout d'une clé unique sur les critères du cumul.

Création des cumuls par le framework

Lorsque le cumul est défini en mode cluster, le framework effectue une opération en deux temps, de type FindOrCreate, pour créer un nouveau cumul :

  • Création du nouveau cumul dans une transaction séparée.
  • Si la création échoue, du fait que le cumul a déjà été créée par un autre processus, recherche du cumul existant.

La création d'un doublon dans la base de données DOIT échouer, il est donc impératif de définir une clé unique sur les critères du cumul.

Tip-20px.png Tip : Si les critères contiennent des références qui peuvent être nulle, la clé unique doit utiliser l'option "Indexer les références nulles"

Création des cumuls par le code métier

Dans certain cas le code métier crée lui-même les cumuls. Il doit alors utiliser la même stratégie et utiliser l'API FindOrCreate.

Voir aussi :





Whos here now:   Members 0   Guests 0   Bots & Crawlers 1
 
Outils personnels