Project Wonder ERXEC Locking problem
Project Wonder ERXEC Locking problem
- Subject: Project Wonder ERXEC Locking problem
- From: Dov Rosenberg <email@hidden>
- Date: Tue, 25 Nov 2008 13:29:12 -0500
- Thread-topic: Project Wonder ERXEC Locking problem
Title: Project Wonder ERXEC Locking problem
We converted our app over to Project Wonder to get past some issues we were having with it locking up under load. For the most part the switch seems to have been successful – we were able to run under a sizable load for 24+hours.
Looking thru the logs however I found some errors like the following. A couple of points of note:
- The app is deployed as a servlet within Tomcat
- http-8226-Processor22 is an incoming request
- Thread-2795 was a thread that was spawned off a potentially different http-8226 processor thread. This thread is spawned to do some work asynchronously so the original thread doesn’t need to wait around and can be returned to the user quicker. The thread only gets database keys passed into it, the thread creates its own editing context to do its fetches with. No EO’s or session variables are passed into the thread – just POJO’s
- We use Project Wonder ERXEC autolocking.
- We are using the Jgroups Remote synchronization (seems to be working much better after we set the SharedEditingContext to false)
It seems that the thread should be getting a different editingcontext but it seems to be getting a handle to one that was used in the original spawning thread.
QUESTIONS:
- Should we use manual locking/unlocking inside the thread?
- Should we even bother to use ERXEC inside the thread? Maybe just use the original WO EOEditingContext
- Is this error causing us any problems? Should we ignore it? How can we configure Wonder or Log4j properties to mask the error if it is informational only?
Thanks in advance
Dov Rosenberg
7020982 [http-8226-Processor22] WARN er.extensions.eof.ERXEC - 31311135 Attempting to lock editing context from http-8226-Processor22 that was previously locked in Thread-2795
Current stack trace: java.lang.Exception: Locked
at er.extensions.eof.ERXEC.lock(ERXEC.java:448)
at com.webobjects.appserver.WOSession._awakeInContext(WOSession.java:835)
at com.webobjects.appserver.WOApplication.restoreSessionWithID(WOApplication.java:1917)
at er.extensions.appserver.ERXApplication.restoreSessionWithID(ERXApplication.java:1948)
....
Lock count: 1
Existing lock: java.lang.Exception: Locked
at er.extensions.eof.ERXEC.lock(ERXEC.java:448)
at com.webobjects.eocontrol.EOEditingContext.tryLock(EOEditingContext.java:4632)
at com.webobjects.eocontrol.EOEditingContext._sendOrEnqueueNotification(EOEditingContext.java:4705)
at com.webobjects.eocontrol.EOEditingContext._globalIDChanged(EOEditingContext.java:2038)
at sun.reflect.GeneratedMethodAccessor365.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:562)
at com.webobjects.eocontrol.EOObjectStoreCoordinator._globalIDsChangedInSubStore(EOObjectStoreCoordinator.java:698)
at sun.reflect.GeneratedMethodAccessor703.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:562)
at com.webobjects.eoaccess.EODatabaseContext.commitChanges(EODatabaseContext.java:6377)
at com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:386)
at com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.java:3192)
at er.extensions.eof.ERXEC._saveChanges(ERXEC.java:981)
at er.extensions.eof.ERXEC.saveChanges(ERXEC.java:903)
at com.myCompany.services.tasks.WorkflowTaskWrapper.createAndSaveChanges(WorkflowTaskWrapper.java:104)
....
Created: java.lang.Exception: Creation
at er.extensions.eof.ERXEC.<init>(ERXEC.java:353)
at er.extensions.eof.ERXEC$DefaultFactory._createEditingContext(ERXEC.java:1492)
at er.extensions.eof.ERXEC$DefaultFactory._newEditingContext(ERXEC.java:1455)
at er.extensions.eof.ERXObjectStoreCoordinatorPool$MultiOSCFactory._newEditingContext(ERXObjectStoreCoordinatorPool.java:210)
at er.extensions.eof.ERXObjectStoreCoordinatorPool$MultiOSCFactory._newEditingContext(ERXObjectStoreCoordinatorPool.java:205)
at er.extensions.eof.ERXEC.newEditingContext(ERXEC.java:1540)
at er.extensions.appserver.ERXSession.defaultEditingContext(ERXSession.java:352)
at com.myCompany.services.application.CVSession.initSession(CVSession.java:182)
_______________________________________________
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