On 22-Jun-09, at 7:58 AM, Vicky C. Miller wrote:

Guido:

Thanks for your input. One of the references you cited looks like Project Wonder based. These are the possible solutions we came up with. Do you
recommend we go with the Project Wonder solution?

Everyone's code is different, but I am a Project Wonder convert and wouldn't build an app without it.

Solution 1: Explicitly handling locking and unlocking of EOEditing Context

Adding lock() and unlock() statements where ever we access data, fetch data, insert data and delete data using Editing Context. Till now in our SOLAR code lock() and unlock() features are not used for Editing Context. For using this, we have to apply this feature to the whole application code.
This solution is more error prone and may result in errors during
application usage.

Time required for implementing this solution : Around 25 to 30 working days,
as we have to apply this feature to whole application for maintaining
consistency.

Solution 2: Using Project Wonder Framework

Adding Project Wonder framework to our SOLAR application. Adding this frame
work requires change in design of application. For example, we have to
subclass Application class from ERXApplication instead of WOApplication.
Similarly Session class from ERXSession instead of ERXSession.

We have to change all the references of EOEditingContext to the one
compatible with Project Wonder framework.

To clarify, you do not need to change the references to EOEditingContext.

You ONLY need to replace any call to "new EOEditingContext()" with "ERXEC.newEditingContext()"

So:

EOEditingContext myEc = new EOEditingContext();

Becomes:

EOEditingContext myEc = ERXEC.newEditingContext();

Using of Project Wonder framework will automatically handles the lock() and
unlock() features of the editing context.

Time required for implementing this solution : Around 15 to 20 days.

Really?

Solution 3: Using Session's default Editing Context

Using Session's default Editing Context where ever we find thisproblem with locking. Session's default Editing Context will take care of locking and
unlocking of editing context automatically.

For example, the recursive locking error that was reported in the attached dump file is in method "configureToolsDisplay()" of Session's class. So, we will use Session's default Editing Context in this method instead of already
used EOEditingContext.

Also remember that the Session defaultEditingContext is global for the session. So you will often have cleanup tasks necessary to prevent unwanted changes from cluttering up the default EC.

Time required for implementing this solution : As we are try to fix the problems whenever it uncovers, it will take around 1 to 2 days for resolving
each uncovered issue.

vm
-----Original Message-----
From: Guido Neitzer [mailto:guido.neit...@gmail.com]
Sent: Monday, June 22, 2009 12:44 AM
To: vcmil...@cssg.com
Cc: webobjects-deploy@lists.apple.com
Subject: Re: Excessive WebObjects Locks

This basically answers the question itself. You must (MUST MUST MUST)
lock / unlock your editing contexts! Only the defaultEditingContext is
locked / unlocked for you!

Look into the autolocking features of MultiECLockManager [1] or ERXEC
[2] if you don't want to bother locking your ECs. Don't try locking
yourself. You will most probably fail as there are many cases you
won't find if you had to ask the question below. Go with the available
options and REALLY use them. Your life will be miserable without!

Guido

[1] http://codeferous.com/files/MultiECLockManager.java
[2] http://wiki.objectstyle.org/confluence/display/WONDER/Tutorials


On 21. Jun. 2009, at 20:45 , Vicky C. Miller wrote:

We are not using EOSharedEditingContext anywhere in our application.
We are
using following Editing Contexts in our application :

1. At some places of our application we are using session's
defaultEditingContext()
2. At some places of our application we are creating a new
EOEditingContext
where ever it is required.

vm
-----Original Message-----
From: Travis Britt [mailto:tbr...@phigment.org]
Sent: Saturday, June 20, 2009 11:01 AM
To: webobjects-deploy@lists.apple.com
Cc: vcmil...@cssg.com
Subject: Re: Excessive WebObjects Locks

Are you using EOSharedEditingContext anywhere?

tb

On Jun 19, 2009, at 6:45 PM, Vicky C. Miller wrote:
Our issue is occurring where the code uses EOEditingContext and other
objects in the WebObjects API that acquire a
com.webobjects.foundation.NSRecursiveLock.



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-deploy mailing list      (Webobjects-
dep...@lists.apple.com)
Help/Unsubscribe/Update your Subscription:

http://lists.apple.com/mailman/options/webobjects-deploy/guido.neitzer%40gma
il.com

This email sent to guido.neit...@gmail.com



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-deploy mailing list (Webobjects- dep...@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-deploy/dleber%40codeferous.com

This email sent to dle...@codeferous.com

;david

--
David LeBer
Codeferous Software
'co-def-er-ous' adj. Literally 'code-bearing'
site:   http://codeferous.com
blog:   http://davidleber.net
profile:        http://www.linkedin.com/in/davidleber
twitter:        http://twitter.com/rebeld
--
Toronto Area Cocoa / WebObjects developers group:
http://tacow.org




_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-deploy mailing list      (Webobjects-deploy@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-deploy/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to