[Zope-CMF] Replication And Workflows - "Nightmare of CMF Stre et"

Dieter Maurer dieter at handshake.de
Wed Sep 24 21:56:06 EDT 2003


Norfleet, Sheppard S. wrote at 2003-9-24 11:51 -0700:
 > ...
 > I think _setObject is not the problem after all.  I am wondering if the
 > location of my replication product and the use of physical paths is causing
 > the problem.  

Very unlikely.

 > ...
 > In the replication product I store the object as a physical path, which will
 > be unrestrictedTraversed to later using Moniker's bind (actually done in a
 > separate thread), from there the object will be replicated.  
 > 
 > Well heres the deal, when I get the object originally, replicateCreate(), I
 > cannot see the workflow_history attribute, and later when I traverse to the
 > object's path and recover the object in a separate thread,
 > checkReplicationQueue(), I still cant see the workflow_history attribute;
 > yet , through the web I can as I changed WorkflowTool to print (to the
 > console) the workflow_history attribute when it retrieves it.  

Two ideas:

  *  I think Shane has a DCWorkflow variant that stores workflow
     state outside the object.

     Should you by chance use this variant?

  *  You mention separate threads.

     Are you aware that a separate thread can easily read stale
     data unless it plays well with the ZODB transaction
     machinery?

     Invalidation messages (caused by modification of objects)
     are only handled at transaction boundaries.
     Unless your separate thread commit/aborts the transaction
     it is highly likely that it sees stale object state.

 > ...
 > So now I am sure its not _setObject, but something in the acquisintion
 > engine is preventing me from accessing the attribute,

You can be sure this is not the case.



Dieter



More information about the Zope-CMF mailing list