Re: postNotification and editingContext().saveChanges() /editingContext().revert()
Re: postNotification and editingContext().saveChanges() /editingContext().revert()
- Subject: Re: postNotification and editingContext().saveChanges() /editingContext().revert()
- From: "Cheong Hee (Gmail)" <email@hidden>
- Date: Thu, 12 Aug 2010 12:48:04 +0800
You may already know this...If your thread belongs to the session, another
option I think is MultiECLockManager.
Cheers
Cheong Hee
----- Original Message -----
From: "Farrukh Ijaz" <email@hidden>
To: "Chuck Hill" <email@hidden>
Cc: "WebObjects-Dev List" <email@hidden>
Sent: Thursday, August 12, 2010 5:47 AM
Subject: Re: postNotification and editingContext().saveChanges()
/editingContext().revert()
Guessing, concurrent threads, and locking. Never a good combination.
Thanks Chuck! Is there any choice then? Or every Workflow may have it's own
editingContext() considering the ec would be lightweight and won't do
anything else except modifying a single row?
On Aug 11, 2010, at 2:35 PM, Farrukh Ijaz wrote:
I am using ERXEC with default settings. I guess it takes care of the
locking automatically.
Sent from my iPad
On 11-Aug-2010, at 11:58 PM, Chuck Hill <email@hidden> wrote:
On Aug 11, 2010, at 1:41 PM, Farrukh Ijaz wrote:
Sent from my iPad
On 11-Aug-2010, at 7:35 PM, Chuck Hill <email@hidden>
wrote:
On Aug 11, 2010, at 2:11 AM, Farrukh Ijaz wrote:
Hi All,
Is it safe to invoke editingContext().saveChange() or
editingContext().revert() in a method that is used through NSSelector
and invoked by the NSNotificationCenter on postNotification()?
That likely depends on which notification.
Okay, here is the real scenario. I have developed a Workflow Engine
which is capable to run multiple workflows in parallel in their
individual threads. Each workflow has methods as start(), stop(),
suspend(), and resume(). The behavior of these methods is understood.
Everything remains in memory. Now in order to persist their state I
have created a corresponding entity. There are two columns of the
entity, status and serializedInstance which change at any stage and
that is depending upon user actions and workflow code.
I have a workflow management dashboard which provides ability to view
all the workflows defined in the system and to start, stop, resume and
suspend. When I start the workflow, I call the method start() of the
workflow entity, which internally triggers the associated workflow's
start() method and also registers the entity to receive notifications
from the workflow thread. The workflow thread post notifications such
as when it completes the job or explicitly stopped, resumed, suspended
etc. So upon these notifications, the workflow entity's onNotify()
method is invoked which in turn based on the message, modifies the
status column and serializedInstance column value and invokes,
editingContext().saveChanges() inside the onNotify() method.
You will have to make sure that the EC is locked before touching any of
the entity's persistent values or calling saveChanges()
I guess the story is too long but it is working fine so far. I just
want to confirm that if this does not break anything at any stage or
cause a deadlock situation?
Chuck
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve specific
problems.
http://www.global-village.net/products/practical_webobjects
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their overall
knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their overall
knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden