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>