Complexité estimée: 300 heures

Le moteur de transaction de niveau industrielle fournit:

  • Un rollback propre si un problème apparait. Tous les objets modifiés reviennent dans leur état précédent.
  • La gestion des deadlocks entre les transactions. Si deux transactions entrent en conflit, le minimum est d’arrêter la seconde transaction. Idéalement, la seconde transaction attend un certain temps que la première transaction soit terminée. Dans le cadre d’un double conflit, ce conflit devrait être résolu par l’expiration de la première transaction
  • La gestion des transactions devrait avoir une pénalité de performance minimum. Cette pénaité devrait être limité au coût d’appliquer des verrous sur les objets.

La gestion des transactions devrait s’appuyer au minimum sur la gestion des transactions dans la base de données. En général:

  • la gestion des transactions sur la base des données est seulement utilisée pour poser les verrous sur les objets.
  • Le serveur d’application va gérer le reste des transactions

Un mécanisme de nettoyage effectue une surveillance des transactions, et va tuer les transactions qui ont été bloquées pour longtemps. Cela implique une persistence sur la base de données des transactions en cours, avec un impact raisonnable sur la performance des transactions.