Procédure publique · ORM_CSHX2 · Configuration / Session

ORM_MongoSetUp

Configure l'archivage MongoDB de l'ORM_CSHX2. Active ou désactive l'archivage des écritures, fixe le mode différé (asynchrone) ou synchrone, et établit la connexion au serveur MongoDB. Habituellement appelée indirectement via ORM_Setup en passant la sous-structure MongoSetUp, mais peut aussi être invoquée directement pour reconfigurer Mongo en cours d'exécution.

Configuration MongoDB Archivage
01

📋 Description

ORM_MongoSetUp pilote l'archivage MongoDB associé à chaque écriture (INSERT, UPDATE) effectuée par l'ORM. Lorsque l'archivage est activé, chaque enregistrement modifié est dupliqué pour assurer la traçabilité (audit, historique applicatif). La destination de l'archive dépend du mode :

  • Mode synchrone (bDeferred = Faux) : l'archive est écrite directement dans MongoDB au moment de l'écriture SQL. Garantit que l'archivage est terminé avant le retour, mais bloque la transaction le temps de l'aller-retour réseau.
  • Mode asynchrone (bDeferred = Vrai) : l'archive est écrite dans la table SQL cshx2_archives (tampon local). Le transfert effectif vers MongoDB est différé et reste à la charge du code applicatif via la procédure ORM_MongoAddArchive.
✅ Résilience de la transaction SQL

Si l'écriture dans MongoDB échoue (réseau indisponible, serveur Mongo arrêté, base saturée…), la transaction SQL principale n'est pas impactée. L'écriture en base relationnelle est validée normalement, et l'échec de l'archivage est tracé sans interrompre le processus métier.

La procédure offre 2 leviers de configuration :

  • Activation/désactivation via bEnabled — l'archivage peut être activé pour certains environnements (production) et désactivé pour d'autres (développement, tests).
  • Mode synchrone ou différé via bDeferred — en mode différé, l'écriture MongoDB est asynchrone et ne bloque pas la transaction SQL ; en mode synchrone, l'opération est bloquante et garantit l'archivage avant la fin de l'écriture SQL.
02

🔑 Signature

PROCÉDURE PUBLIQUE ORM_MongoSetUp( bEnabled est un booléen, bDeferred est un booléen, sServerAddress est une chaîne, nPort est un entier, sDatabase est une chaîne, sUser est une chaîne, sPassword est une chaîne ) : (booléen, entier, chaîne)
PositionÉlémentTypeDescription
Sortie 1bProcessingbooléenVrai si la configuration a réussi, Faux sinon.
Sortie 2nErrorCodeentierCode d'erreur (0 si succès) — voir page Codes d'erreur.
Sortie 3sErrorMessagechaîneMessage d'erreur localisé (vide si succès).
03

📦 Paramètres

ParamètreTypeDescription
bEnabledbooléenActive (Vrai) ou désactive (Faux) l'archivage MongoDB. Si Faux, tous les autres paramètres sont ignorés.
bDeferredbooléenMode d'archivage : Vrai = différé (asynchrone, n'attend pas la fin de l'écriture MongoDB), Faux = synchrone (bloquant, garantit que l'archivage est terminé avant le retour). Ignoré si bEnabled = Faux.
sServerAddresschaîneAdresse du serveur MongoDB (FQDN, ex. mongo.cashx2.fr, ou IP). Doit être renseigné si bEnabled = Vrai.
nPortentierPort d'écoute MongoDB. Port standard : 27017. Doit être strictement positif si bEnabled = Vrai.
sDatabasechaîneNom de la base d'archivage MongoDB. Doit être renseigné si bEnabled = Vrai.
sUserchaîneIdentifiant de connexion MongoDB. Doit être renseigné si bEnabled = Vrai.
sPasswordchaîneMot de passe MongoDB. Doit être renseigné si bEnabled = Vrai.
04

💡 Exemples

Exemple 1 — Archivage activé en mode différé

Configuration courante en production : l'archivage est activé, mais en mode différé pour ne pas pénaliser la performance des écritures SQL principales.

(bOK, nCode, sMsg) = ORM_MongoSetUp( ... Vrai, // bEnabled : archivage activé Vrai, // bDeferred : mode différé (asynchrone) "mongo.cashx2.fr", // sServerAddress 27017, // nPort "appli_archive", // sDatabase "orm_user", // sUser "motdepasse_securise" // sPassword ) SI bOK = Faux ALORS Erreur("Configuration MongoDB impossible : " + sMsg) FIN

Exemple 2 — Archivage activé en mode synchrone

Configuration plus stricte : l'archivage est synchrone, ce qui garantit que chaque écriture SQL est dupliquée dans MongoDB avant la fin de l'opération. Utile en environnement audit strict.

(bOK, nCode, sMsg) = ORM_MongoSetUp( ... Vrai, // bEnabled : archivage activé Faux, // bDeferred : mode synchrone (bloquant) "mongo-audit.cashx2.fr", // sServerAddress 27017, // nPort "appli_audit", // sDatabase "orm_audit_user", // sUser "motdepasse_audit" // sPassword )
⚠️ Impact performance

Le mode synchrone allonge le temps de chaque écriture SQL d'un aller-retour réseau MongoDB. À privilégier uniquement quand la garantie d'archivage est plus importante que la latence.

Exemple 3 — Archivage désactivé

Configuration en environnement de développement ou de test, où l'archivage n'est pas nécessaire. Les autres paramètres sont ignorés.

(bOK, nCode, sMsg) = ORM_MongoSetUp( ... Faux, // bEnabled : archivage désactivé Faux, // bDeferred (ignoré) "", // sServerAddress (ignoré) 0, // nPort (ignoré) "", // sDatabase (ignoré) "", // sUser (ignoré) "" // sPassword (ignoré) )