Bonjour,

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.
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.

Traceback (most recent call last):
  File "/usr/local/zope/zope274_base/lib/python/ZPublisher/Publish.py", line
101, in publish
    request, bind=1)
  File "/usr/local/zope/zope274_base/lib/python/ZPublisher/mapply.py", line
88, in mapply
    if debug is not None: return debug(object,args,context)
  File "/usr/local/zope/zope274_base/lib/python/ZPublisher/Publish.py", line
39, in call_object
    result=apply(object,args) # Type s<cr> to step into published object.
  File
"/usr/local/zope/zope274_base/lib/python/Products/ExternalMethod/ExternalMethod.py",
line 225, in __call__
    try: return f(*args, **kw)
  File
"/usr/local/zope/zope274_instance_i1/Products/AcossDocs/Extensions/geredocjuridique.py",
line 914, in genereDoc
    translator.genereDoc()
  File
"/usr/local/zope/zope274_instance_i1/Products/AcossDocs/Extensions/geredocjuridique.py",
line 168, in genereDoc
    targetFolder.invokeFactory('lettre_juridique', new_id)
  File "/usr/local/zope/zope274_instance_i1/Products/CPSCore/CPSTypes.py",
line 60, in invokeFactory
    newid = wftool.invokeFactoryFor(self, type_name, id, *args, **kw)
  File
"/usr/local/zope/zope274_instance_i1/Products/CPSCore/CPSWorkflowTool.py",
line 247, in invokeFactoryFor
    kwargs=kw)
  File
"/usr/local/zope/zope274_instance_i1/Products/CPSCore/CPSWorkflowTool.py",
line 365, in _createObject
    type_name, id)
  File "/usr/local/zope/zope274_instance_i1/Products/CPSCore/ProxyTool.py",
line 112, in createEmptyProxy
    docid=docid)
  File "/usr/local/zope/zope274_instance_i1/Products/CPSCore/ProxyTool.py",
line 714, in constructContent
    ob = self._constructInstance_fti(container, ti, id, *args, **kw)
  File "/usr/local/zope/zope274_instance_i1/Products/CPSCore/ProxyTool.py",
line 691, in _constructInstance_fti
    newid = meth(id, *args, **kw)
  File "/usr/local/zope/zope274_instance_i1/Products/CPSCore/ProxyBase.py",
line 1305, in addProxyDocument
    container._setObject(id, ob)
  File
"/usr/local/zope/zope274_instance_i1/Products/CPSCore/OrderedFolderSupportPatch.py",
line 92, in _setObject
    res = self._old_ordfold_setObject(id, object, roles, user, set_owner)
  File "/usr/local/zope/zope274_base/lib/python/OFS/ObjectManager.py", line
248, in _setObject
    v=self._checkId(id)
  File "/usr/local/zope/zope274_instance_i1/Products/CPSCore/CPSBase.py",
line 85, in _checkId
    PortalFolder.inheritedAttribute('_checkId')(self, id, allow_dup)
  File "/usr/local/zope/zope274_base/lib/python/OFS/ObjectManager.py", line
81, in checkValidId
    raise BadRequest, (
BadRequest: The id "LCOL-2009-087_1240345985" is invalid - it is already in
use.

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...).

 Environment : Zope/(Zope 2.7.4-0, python 2.3.4, linux2) ZServer/1.1 CPS/3.2
data.fs de 15 GO
Le cache ZODB : 30 000 objets
Le cache client zope : 100 MB sur chacun des 2 clients sur les instances i1
(machines prod10 et prod04)
                                            50 MB sur chacun des 2 clients
sur les instances i2 (machines prod10 et prod04)


Malika LB.
ACOSS
_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

Répondre à