On Apr 23, 2009, at 10:49 AM, Malika LBAOUCH wrote:
Bonjour,
Bonjour Malika !
Lorsque je crée des documents avec la méthode invokefactory il
arrive que mon traitement plante au bout d'un certain temps.
Il me présente le message The id "LCOL-2009-087_1240345985" is
invalid - it is already in use alors que l'id est sensé être unique
étant généré avec la date et l'heure à la seconde près.
Quelle qu'en soit la cause, il a sans doute raison à ce stade. Il
faudrait de toute façon régler ce problème dans ton code, par exemple
en testant si l'id en question est déjà pris, et en s'autorisant à
rajouter un chiffre de plus si ce n'est le cas. C'est ce que fait par
exemple le cpsdocument_create_do, en passant par le script computeId,
que tu peux trouver dans CPSDefault.
Je voudrais pouvoir commiter la transaction de création d'un
document pour éviter qu'il ne fasse un rollback de la création de
tous les documents précédents celui qui plante.
Auriez vous un exemple de ce type de réalisation? merci d'avance.
Ça peut se faire, mais ne réglera pas le problème de création, ça
devrait aussi calmer (un peu) les conflits.
en Zope 2.7 c'était
get_transaction().commit()
la fonction get_transaction() est normalement toujours dispo dans le
contexte
Je ne sais plus s'il faut enchaîner avec une recréation explicite de
transaction avec get_transaction().begin(). Essaye avec et sans sur
une instance de tests/développement.
Pour info, en Zope 2.8 et 2.9, c'est
import transaction
transaction.commit()
Tout ça est à faire en code non restreint, mais il semble bien que ce
soit ton cas (produit AcossDocs).
ci-joints les paramères de config niveau caches zope et zodb (config
zeo avec 2 clients zope)
Peut être que ça peut expliquer les temps de réponse extremement
longs avant le plantage (1h30 pour créer 15 documents sans arriver
au bout puisque le rollback zope annule la transaction...).
Sur une telle longueur, je dirais a priori qu'il doit y avoir des
conflits, ce qui ne fait bien sûr qu'aggraver les chose. Quoi qu'il
en soit, les 15 Go c'est peut-être beaucoup, je suppose que les
fichiers attachés sont stockés directement en ZODB ?
En tout cas une chose est sûre, ton instance est malade, et 1h30, ça
n'est pas tolérable, même si ça redescend à 30 mn avec une gestion
explicite de transaction.
--
Georges Racinet, http://www.racinet.fr
Zope/CPS/Plone expertise, assistance & development
GPG: 0x4862FFF7
_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>