Problem with multiple concurrent ERXAbstractTask each with his own objectstore
Jürgen Rohrbach <[email protected]> Wed, 21 Sep 2016 14:07:53 +0200
| Newsgroups | gmane.comp.web.webobjects.wonder-disc |
|---|---|
| Message-ID | <[email protected]> |
hello,
i am now trying for a while to get multiple background tasks running =
concurrent
each with his own object store coordinator.
each of the task iterate over a lot of enterprise objects.
the used editingcontext is disposed in the loop every 1000 records and
a new one is created.
all works fine but once in a while a get and error from the =
eodatabasecontext
that an eo can't be fetched with global id but that id exists!
er.extensions.eof.ERXDatabaseContextDelegate =
$ObjectNotAvailableException: No XXX found with globalID: <XXX: [ID: =
'64294'] >
at =
er.extensions.eof.ERXDatabaseContextDelegate.databaseContextFailedToFetc =
hObject(ERXDatabaseContextDelegate.java:346)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke =
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke =
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.webobjects.foundation.NSSelector._safeInvokeMethod =
(NSSelector.java:122)
at com.webobjects.foundation._NSDelegate._perform =
(_NSDelegate.java:223)
at com.webobjects.foundation._NSDelegate.perform =
(_NSDelegate.java:167)
at com.webobjects.eoaccess.EODatabaseContext._fireFault =
(EODatabaseContext.java:4205)
at =
com.webobjects.eoaccess.EOAccessFaultHandler.completeInitializationOfObj =
ect(EOAccessFaultHandler.java:89)
at com.webobjects.eocontrol.EOCustomObject.willRead =
(EOCustomObject.java:1172)
at com.webobjects.eocontrol._EOMutableKnownKeyDictionary =
$Initializer$_GenericRecordBinding.valueInObject =
(_EOMutableKnownKeyDictionary.java:570)
at com.webobjects.eocontrol._EOMutableKnownKeyDictionary =
$Initializer$_LazyGenericRecordBinding.valueInObject =
(_EOMutableKnownKeyDictionary.java:613)
at com.webobjects.eocontrol.EOCustomObject.storedValueForKey =
(EOCustomObject.java:1634)
if i run the task sequential i got no errors.
i think it is a problem with the concurrency.
does anybody have some hints what is to be considered when running =
task concurrent?
thanks,
j=FCrgen
---------------------------------------------------------------------------=
---