Page 1 sur 1

Systeme de verrous / locks (cbsqlxp)

MessagePosté: Mer 3 Juin 2020 03:20
de pafnow
Bonjour a tous (et a toutes),

Je suis actuellement en train de regarder en detail le fonctionnement du système de verrous (locks) utilise par Sage 100cloud.
Pour l'instant j'ai cru comprendre que tout se basait sur les procedures stockées etendues présentes dans la base de données master: xp_CBIs*Lock, xp_CBLock*, xp_CBUnLock* et xp_CBPurgeLock. Ces procedures font appel a une dll cbsqlxp.dll (que je n'ai pas réussi a décompiler).

Mon principal problème actuel est l'impossibilite d'extraire une liste des locks actifs afin de savoir précisément qui lock quoi (et pourquoi). A prime abord, il ne semble pas y avoir une telle possibilité mais si quelqu'un connait une astuce, je lui en serais très reconnaissant de la partager.

Ma deuxième option consisterait a redévelopper le système de locks / verrous en remplaçant dans master les procedures stockées susnommées. Au vu de la documentation, cela ne semble pas impossible mais il faudrait bien documenter les retours standards des procedures stockées ainsi que leur codes erreurs.
A nouveau, si quelqu'un a déjà explore cette voie, je serais très intéressé d'avoir leur avis sur la question. Et si d'autres personnes sont intéressées par le project, dites-le moi.

Pour commencer:
- post60219.html
- documentation Sage "Déploiement Sage 100c MS SQL Server pour Premium"

Re: Systeme de verrous / locks (cbsqlxp)

MessagePosté: Mar 9 Juin 2020 08:13
de pafnow

Re: Systeme de verrous / locks (cbsqlxp)

MessagePosté: Lun 29 Juin 2020 13:04
de asr31
Bonjour,

C'est en effet un manque dans l'application : pouvoir retourner les Locks en cours.
Seule méthode dispo., mais très longue, tester les locks en cours sur chaque pièce ou objet.
Pas cool.
Tant que ces dll n'offrent pas la méthode pour fournir la liste des locks en cours, je ne vois pas trop comment faire.
Et je ne me lancerait pas dans le redéveloppent des locks de SAGE : on n e sait pas ce que fait la partie cliente....

Rappel du contexte :
Généralement, on a besoin de savoir si un élément (Pièce, écriture, etc.) est lockée avant d'intervenir dessus. Là, les processus SAGE nous donne l'information pour un objet particulier.

Si on veut travailler en masse pour savoir quel est l'ensemble des locks en cours, on n'a pas trop de solution.

Cordialement,

Re: Systeme de verrous / locks (cbsqlxp)

MessagePosté: Jeu 2 Juil 2020 06:30
de pafnow
asr31 a écrit:Et je ne me lancerait pas dans le redéveloppent des locks de SAGE : on n e sait pas ce que fait la partie cliente....

En effet, c'est la zone floue.
J'ai bien etudie les requetes effectuees sur le serveur SQL et pour l'instant, j'observe toujours des appels aux stored procedures CB_Lock*. Sachant que ces locks sont maintenues par le serveur SQL, il faudrait que le serveur expose un autre point d'acces (autre que SQL Server)... peu probable.
Je continue mon exploration et informerai ici si je decouvre un probleme.