locked
Where are the workflow bookmarks saved? RRS feed

  • Question

  • Where does the workflow bookmarks that we create in Creatbookmarks and WCF ReceiveActivity get stored?
    Tuesday, March 29, 2011 8:44 AM

Answers

  • Pending bookmarks are a part of the workflow instance state that is stored in the instance store.
    Sr. Program Manager, AppFabric Development Platform (WF/WCF) http://blogs.msdn.com/rjacobs http://www.twitter.com/ronljacobs
    • Marked as answer by Andrew_Zhu Tuesday, April 5, 2011 7:00 AM
    Wednesday, March 30, 2011 7:38 PM
  • While your workflow is a live object (like just after it went idle, or after you have loaded a workflow from the persistant store), they are stored on the WorkflowInstance. You can retrieve them from a WorkflowApplication used to run the workflow, by calling GetBookmarks().

    Once the workflow is persisted, the bookmarks are just stored with the workfow instance data in the instance store (aka persistant store).

    Some people would be asking this question with a view to solving 'how do I figure out which workflow instance to load from the persistent store?'

    If you write the host, or just a host extension, basically you can choose your own strategy. Example, WorkflowServiceHost maintains a correlation query dictionary pointing to instance identifiers, so it's not explicitly based on bookmarks. Once the instance id is identified it can also work out which receive activity is resumable.
    Tim

    • Proposed as answer by Tim Lovell-Smith Friday, April 1, 2011 9:50 PM
    • Marked as answer by Andrew_Zhu Tuesday, April 5, 2011 6:59 AM
    Wednesday, March 30, 2011 8:10 PM

All replies

  • Pending bookmarks are a part of the workflow instance state that is stored in the instance store.
    Sr. Program Manager, AppFabric Development Platform (WF/WCF) http://blogs.msdn.com/rjacobs http://www.twitter.com/ronljacobs
    • Marked as answer by Andrew_Zhu Tuesday, April 5, 2011 7:00 AM
    Wednesday, March 30, 2011 7:38 PM
  • While your workflow is a live object (like just after it went idle, or after you have loaded a workflow from the persistant store), they are stored on the WorkflowInstance. You can retrieve them from a WorkflowApplication used to run the workflow, by calling GetBookmarks().

    Once the workflow is persisted, the bookmarks are just stored with the workfow instance data in the instance store (aka persistant store).

    Some people would be asking this question with a view to solving 'how do I figure out which workflow instance to load from the persistent store?'

    If you write the host, or just a host extension, basically you can choose your own strategy. Example, WorkflowServiceHost maintains a correlation query dictionary pointing to instance identifiers, so it's not explicitly based on bookmarks. Once the instance id is identified it can also work out which receive activity is resumable.
    Tim

    • Proposed as answer by Tim Lovell-Smith Friday, April 1, 2011 9:50 PM
    • Marked as answer by Andrew_Zhu Tuesday, April 5, 2011 6:59 AM
    Wednesday, March 30, 2011 8:10 PM