RE: How does concurrency control work in WO?
RE: How does concurrency control work in WO?
- Subject: RE: How does concurrency control work in WO?
- From: "Ren, Kevin" <email@hidden>
- Date: Mon, 30 Mar 2009 11:10:56 +1300
- Thread-topic: How does concurrency control work in WO?
Hi, thanks for you guys replay so fast.
After doing the Google search in last Friday, I got link to
http://terminalapp.net/dr-optimistic-locking/
And want to understand more about concurrency issue in WO by code, so
that 's the reason I am asking here.
Also try to understand what's diff between multi-EOF and DB connection
pool in J2EE, (like weblogic, tomcat or webshpere).
Further how is J2EE world solve this concurrency issue?
WONDER is just trying fix the problem or Apple can accept it in WO
release?
Thanks for your time,
Kevin
-----Original Message-----
From: webobjects-dev-bounces+kevin.ren=email@hidden
[mailto:webobjects-dev-bounces+kevin.ren=email@hidden.c
om] On Behalf Of Guido Neitzer
Sent: Monday, 30 March 2009 9:26 a.m.
To: Ren, Kevin
Cc: WebObjects Development
Subject: Re: How does concurrency control work in WO?
On 29. Mar. 2009, at 13:08 , Ren, Kevin wrote:
> I think it's about EOF professing.
> But if you have both, that's great.
First of all: What EXACTLY is your goal?
There are several ways of dealing with concurrency:
1. Switch on concurrent request handling with the property:
-DWOAllowsConcurrentRequestHandling=true
Note that this was set through JavaMonitor with the -D property
notation.
Using concurrent request handling has several implications (see EOF
part).
2. Use more instances. This might be the least painful way in regard of
locking issues, but the most painful in regard of data freshness.
3. Define your bottlenecks better.
4. Use multiple EOF connections to the database (Wonder has ways of
doing this automatically).
As soon as you have concurrent request handling you need to deal with
the following:
- Data freshness
- Caching
- Locking
- Valid data (Which write wins? Dealing with freshness again.)
You get most of this for free if you use ProjectWonder, which I highly
recommend. You need to use correct locking of your editing contexts (see
ERXEC from Wonder or MultiECLockManager, search on Google for more
information).
If you just enable concurrent request handling, EOF will still stay
single threaded for one instance as long as you don't use for example a
new object store coordinator for long running transactions.
Be aware that all this will bring you into dead locking and data
freshness hell as long as you don't really know, what you're doing OR as
long as you don't use the "make me and the gods of EOF happy features"
from Wonder.
cug
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
ional.co.nz
This email sent to email@hidden
"This communication is confidential and may contain privileged and/or copyright material. If you are not the intended recipient you must not use, disclose, copy or retain it. If you have received it in error please immediately notify me by return email, delete the emails and destroy any hard copies. ANZ National Bank Limited does not guarantee the integrity of this communication, or that it is free from errors, viruses or interference."
_______________________________________________
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