From: Ken A. <ken...@an...> - 2011-02-12 04:56:39
|
Hi all, I have concurrent request handling turned on, and am ending up with a problem when two requests have different EC's locked. According to the logging, the first method is entered, which locks ERXEC #1. Then, a new request starts, and locks ERXEC #2. When the second requests hits the DB, I see this: [2011-02-12 04:04:38,927] WARN er.extensions.eof.ERXModelGroup Clearing previous class descriptions [2011-02-12 04:04:38,927] WARN er.extensions.eof.ERXModelGroup Clearing previous class descriptions Then, this: java.lang.IllegalArgumentException: An object store for the entity "Membership" could not be found. Verify that the entity is defined in an EOModel, and that the model is installed properly. To see what models are loaded, you can try printing the return value of EOModelGroup.defaultGroup() in your application. All the code works fine if the requests don't overlap. These are set: er.extensions.ERXEC.safeLocking=true er.extensions.ERXEC.useSharedEditingContext=false er.extensions.ERXEnterpriseObject.applyRestrictingQualifierOnInsert=true er.extensions.ERXEnterpriseObject.updateInverseRelationships=true they're the defaults and seem pretty harmless, although I always lock everything myself. One thing - the EC's are subclasses of ERXEC, and I just "new" them: TTEditingContext ec = new TTEditingContext(); Is that OK? I noticed there are factory methods for creating new EC's in ERXEC. Oh - one other thing... once the first request completes, subsequent requests work fine! What's the easiest way to see what version of wonder I'm using? I know its the 5.4 branch since I'm using the binary plist stuff.... Thanks for any thoughts... Ken |