From: Jeff S. <jef...@ma...> - 2009-03-08 04:26:40
|
It locked up again, but I have another clue. Frontbase is outputting the following error message every 10 seconds. 2009-03-07 22:17:28 [13295] fssAccept: Accept failed (24): Too many open files Also, the current state of the thread in top: PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE 19408 java 0.1% 0:12.66 29 820 261 35M- 22M 48M- 278M- Apparently I'm not closing something somewhere? Jeff On Mar 7, 2009, at 8:03 PM, Kieran Kelleher wrote: > IIRC, you have to do your own lock/unlock in regular background > threads ..... I always do anyway ..... > > ec.lock(); > try { > //do stuff > } catch (Exception e) { > // handle > } finally { > ec.unlock(); > } > > > > > > > > > > > > > > On Mar 7, 2009, at 8:04 PM, Jeff Schmitz wrote: > >> Hello, >> Below is my setup for executing a background thread with its own >> EOObjectStoreCoordinator and its own EOEdtingContext. Note that >> I'm using ERXEC to create the EOEditingContext, and have the below >> properties set. Also note that I don't do lock or unlock as I >> understand that ERXEC does this for you. Is this correct? Is it >> ok to use this in a thread? The reason I ask is that I can kick >> off the thread and not touch my app in any other way, and more >> often than not the calculations will hang after about 15 minutes as >> if its deadlocked. However I haven't been able to repeat the error >> with lock logging on yet. Could it have something to do with the >> Session timing out during processing? Or is there something else I >> don't have quite right? >> >> er.extensions.ERXApplication.useEditingContextUnlocker=true >> er.extensions.ERXEC.defaultAutomaticLockUnlock=true >> er.extensions.ERXEC.useSharedEditingContext=false >> er.extensions.ERXEC.defaultCoalesceAutoLocks=true >> er >> .extensions >> .ERXEnterpriseObject.applyRestrictingQualifierOnInsert=true >> er.extensions.ERXEnterpriseObject.updateInverseRelationships=true >> >> public static void updateResults() { >> >> //Do lots of loops >> while (...) { >> resultsObjectStore = new EOObjectStoreCoordinator(); >> resultsEC = ERXEC.newEditingContext(resultsObjectStore); >> >> //Do lots of processing. >> >> resultsEC.saveChanges(); >> >> //Free up the memory, nothing will be reused in next loop anyway. >> resultsEC.dispose(); >> resultsObjectStore.dispose(); >> resultsObjectStore = new EOObjectStoreCoordinator(); >> resultsEC = ERXEC.newEditingContext(resultsObjectStore); >> >> } >> } >> >> public static void updateResultsThread() { >> t = new Thread("updateResults") { >> public void run() { >> updateResults(); >> } >> }; >> t.start(); >> } >> >> >> Thanks! >> Jeff >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Web...@li...) >> Help/Unsubscribe/Update your Subscription: >> http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com >> >> This email sent to kie...@ma... > |