On Jan 27, 2015, at 4:19 PM, Chuck Hill <ch...@gevityinc.com> wrote:

> Are you using this?
> 
> /**
>  * This class implements EOF stack pooling including EOF stack synchronizing. 
>  * It provides a special ERXEC.Factory in order to work without any changes 
> in existing 
>  * applications. The number of EOObjectStoreCoordinators can be set with the 
>  * system Property 
> <code>er.extensions.ERXObjectStoreCoordinatorPool.maxCoordinators</code>. 
>  * Each Session will become one EOObjectStoreCoordinator and the method 
>  * <code>newEditingContext</code> will always return an 
> <code>EOEditingContext</code> 
>  * with the same <code>EOObjectStoreCoordinator</code> for the same 
> <code>WOSession</code>. 
>  * This first release uses round-robin pooling, future versions might use 
> better algorithms 
>  * to decide which <code>EOObjectStoreCoordinator</code> will be used for the 
> next new 
>  * <code>WOSession</code>.<br>The code is tested in a heavy  multithreaded 
> application 
>  * and afawk no deadlock occures, neither in EOF nor directly in Java.
>  * 
>  * @author David Teran, Frank Caputo @ cluster9
>  */
> public class ERXObjectStoreCoordinatorPool {

I think so. From a different thread:

another weird case: this application is run single-instance (but 
ERXObjectStoreCoordinatorPool.maxCoordinators=3, 
WOAllowsConcurrentRequestHandling=true).

> 
> 
> 
> On 2015-01-27, 3:04 PM, "OC" wrote:
> 
> Hello there,
> 
> since I wrote an awk script to check whether my OSCs get unlocked properly, 
> I've bumped into one very strange thing in the locks.
> 
> First, my code is pretty straightforward (assuming we should lock OSC at all, 
> which is debatable -- based on http://terminalapp.net/dr-optimistic-locking/; 
> Chuck says well all right, though it should be sufficient to catch some 
> notifications instead):
> 
> ===
>         EOEditingContext ec=auction.editingContext()
>         EOObjectStore osc=ec.rootObjectStore()
>         osc.lock()
>         try {
>             logln "$osc LOCKED FOR CU $sess.currentUser.login"
>             EOEditingContext tempec=ERXEC.newEditingContext()
>             ... creating localInstanceIn as needed, updating them as 
> appropriate …

Wat?

http://i0.kym-cdn.com/photos/images/newsfeed/000/173/580/Wat.jpg?1315930588

I don’t understand why this would be necessary, and I’m afraid to ask ;-) 
Anyway,

//You should be doing this if you want to ensure a peer ec in the same osc
EOEditingContext tempec = ERXEC.newEditingContext(osc);


>             tempec.saveChanges()
>             println "... saved successfully!"
>        } catch (exc) {
>             ... reporting and logging error -- does not happen ...
>        } finally {
>             osc.unlock()
>             println "$osc UNLOCKED FOR CU $sess.currentUser.login"
>        }
> ===
> 
> and in one place in my logs, there is
> 
> ===
> 26.1 14:06:03: 
> er.extensions.eof.ERXObjectStoreCoordinator@5d5e3b92[name=unnamed] LOCKED FOR 
> CU CEZProdej
> ... saved successfully!
> 26.1 14:06:03: 
> er.extensions.eof.ERXObjectStoreCoordinator@5d5e3b92[name=unnamed] LOCKED FOR 
> CU EPETas
> ... saved successfully!
> er.extensions.eof.ERXObjectStoreCoordinator@5d5e3b92[name=unnamed] UNLOCKED 
> FOR CU CEZProdej
> er.extensions.eof.ERXObjectStoreCoordinator@5d5e3b92[name=unnamed] UNLOCKED 
> FOR CU EPETas
> ===
> 
> What the darn?!? This should not be possible, or am I completely missing the 
> point of osc.lock()?!? :-O
> 
> In the vicinity, all the other logs looks all right, no exception not other 
> error reported.
> 
> As usual, I'll be pretty grateful for any insight,
> OC
> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/chill%40gevityinc.com
> 
> This email sent to ch...@gevityinc.com
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com
> 
> This email sent to rgur...@smarthealth.com

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

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

Reply via email to