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>

Répondre à