Hi,

I'm currently taking a look on Wonder's ERChangeNotificationJMS framework, as it is causing deadlocks sometimes (often).

The framework currently sends around snapshots via JMS and replaces them at the EODatabase level in the recieving instance:

   EODatabase database;
   EOGlobalID globalID;
   NSDictionary snapshot;
...
   database.forgetSnapshotForGlobalID(globalID);
   database.recordSnapshotForGlobalID(snapshot, globalID);

I guess that this is taken from the father of all change notification frameworks by D. Neumann, as almost the same lines can be found in the WHChangeNotification framework.

Several people reported, that everything works a lot better, if no snapshots but just globalIDs are used.

Now I can see several ways to invalidate the data once the GIDs are received and I'm wondering, what's the best way to do so:

1. database.forgetSnapshotForGlobalID(globalID);
or
2. database.recordSnapshotForGlobalID(null, globalID);
or
3. ec.invalidateObjectsWithGlobalIDs(globalIDs);
or
4. ec.rootObjectStore().invalidateObjectsWithGlobalIDs(globalIDs);

Or a combination of the above ones? Or a completely different approach?

Am I right, that 1+2 would work across different EOF stacks within one instance but 3+4 would only work for one?

Any hints would be very welcome.

Timo

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to archive@mail-archive.com

Reply via email to