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
13592 java 0.0% 12:00.76 30 479 293 679M
23M 693M 1782M
And lsof -p 13592 gives a TON of these:
java 13592 netBrackets 216u IPv6 0xa5be984 0t0 TCP [::
127.0.0.1]:60567->[::127.0.0.1]:56748 (ESTABLISHED)
Why all the connections?
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 ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com
This email sent to [email protected]
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]