• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: No snapshot for gid _EOIntegralKeyGlobalID
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: No snapshot for gid _EOIntegralKeyGlobalID


  • Subject: Re: No snapshot for gid _EOIntegralKeyGlobalID
  • From: David Avendasora <email@hidden>
  • Date: Thu, 7 May 2009 14:13:09 -0400


On May 7, 2009, at 1:37 PM, Mr. Pierre Frisch wrote:

Just glancing at the stack trace there a few things that I would look for. You are using EC in threads?

Yeah. I'm using Quartz (http://www.opensymphony.com/quartz/) to do some automated processing. Normally the jobs run at different times, but it is possible for them to run simultaneously each using its own thread.


This is usually hard to get right as you need to have the EC lock before you fire any faults and you don't want to create deadlocks between threads. How many thread to you have that access the DB?

Quartz right now is configured with 5 threads in the thread pool (it's the default) but in practical terms there shouldn't be more than 2 active and working at any one time, and that should only happen occasionally. I only get the error occasionally, so it seems likely that this could be causing the problem.


Could you have one DB connexion per thread?

Are you suggesting that I should, or wondering if that is the current situation? RIght now, I believe both threads would be using the same DB connection. I'm certainly not setting up anything differently than the standard (default) WO app setup.


In this case I would create one EOF stack per thread and lock the stack when processing starts and unlock it at the end,

Okay. That makes sense. I would assume that Wonder's ERXObjectStoreCoordinatorPool is the best way to do this?


this is by far the easiest model.

Even easier: I'm going to just configure Quartz to use one thread. I think this way each job will just need to wait until the previous job is finished before starting. I'll see how that works first, then move onto multiple EOF stacks only if I really need them.


Do you transfer EO from one thread to the other?

Nope!

Thanks again!

Dave


Pierre -- Pierre Frisch email@hidden


On May 7, 2009, at 9:47, David Avendasora wrote:

Hi Pierre!

Glad to see you active on the lists again!

See my responses below:

On May 7, 2009, at 12:39 PM, Mr. Pierre Frisch wrote:

Dave,

Which version of WO?

WO 5.3.3

DO you use shared editing context?

No.

Is there any chance that the Editing Context is not locked when the faults fires?

Yes. After 5 years of doing WO (mostly D2JC), this is one of the first places I've started using ECs other than the default EC, so I'm sure I'm abusing it. I'm just not sure where to look to fix it.


Pierre
--
Pierre Frisch
email@hidden


On May 5, 2009, at 13:52, David Avendasora wrote:

I've been getting this error seemingly randomly. I can't reproduce it locally, it just happens a couple times a day and the stack trace shows up in my inbox.

I'm assuming that I must be somehow creating an object in one EC and then trying to use it in another, but I can't seem to find it. Is there anything else that can cause this error?

Thanks,

Dave


Job DEFAULT.Sync Lot Codes threw an unhandled Exception:
java.lang.IllegalStateException: initializeObject: No snapshot for gid _EOIntegralKeyGlobalID[ManufacturedPart (java.lang.Long)206866]
at com .webobjects .eoaccess .EODatabaseContext.initializeObject(EODatabaseContext.java:3731)
at com .webobjects .eocontrol .EOObjectStoreCoordinator .initializeObject(EOObjectStoreCoordinator.java:646)
at com .webobjects .eocontrol .EOEditingContext.initializeObject(EOEditingContext.java:3805)
at er.extensions.eof.ERXEC.initializeObject(ERXEC.java:1047)
at com .webobjects .eoaccess.EODatabaseContext._fireFault(EODatabaseContext.java:4301)
at com .webobjects .eoaccess .EOAccessFaultHandler .completeInitializationOfObject(EOAccessFaultHandler.java:85)
at com .webobjects.eocontrol.EOCustomObject.willRead(EOCustomObject.java: 1189)
at com.webobjects.eocontrol._EOMutableKnownKeyDictionary $Initializer $ _GenericRecordBinding .valueInObject(_EOMutableKnownKeyDictionary.java:519)
at com .webobjects .eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java: 1736)
at com .bestmaid .bakeryManagement .server.lotCodeTracking._LotCode.lotCodeValue(_LotCode.java:96)
at sun.reflect.GeneratedMethodAccessor372.invoke(Unknown Source)
at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.webobjects.foundation.NSKeyValueCoding$ValueAccessor $1.methodValue(NSKeyValueCoding.java:684)
at com.webobjects.foundation.NSKeyValueCoding $_MethodBinding.valueInObject(NSKeyValueCoding.java:1160)
at com .webobjects .eocontrol.EOCustomObject.valueForKey(EOCustomObject.java:1559)
at com.webobjects.foundation.NSKeyValueCoding $Utility.valueForKey(NSKeyValueCoding.java:498)
at com.webobjects.foundation.NSKeyValueCodingAdditions $ DefaultImplementation .valueForKeyPath(NSKeyValueCodingAdditions.java:212)
at com .webobjects .eocontrol.EOCustomObject.valueForKeyPath(EOCustomObject.java:1675)
at com.webobjects.foundation.NSKeyValueCodingAdditions $Utility.valueForKeyPath(NSKeyValueCodingAdditions.java:149)
at com .webobjects .eocontrol .EOKeyValueQualifier.evaluateWithObject(EOKeyValueQualifier.java: 131)
at com .webobjects .eocontrol.EOAndQualifier.evaluateWithObject(EOAndQualifier.java: 96)
at com .webobjects .eocontrol .EOQualifier.filteredArrayWithQualifier(EOQualifier.java:635)
at com .bestmaid.bakeryManagement.server.part._Part.lotCodes(_Part.java: 618)
at com .bestmaid.bakeryManagement.server.part._Part.lotCodes(_Part.java: 588)
at com .bestmaid .bakeryManagement .server .integration .ExternalInventoryTransactionLotCode .synchronize(ExternalInventoryTransactionLotCode.java:136)
at com .bestmaid .bakeryManagement .server .integration .ExternalInventoryTransaction .synchronize(ExternalInventoryTransaction.java:91)
at com .bestmaid .bakeryManagement .scheduledjobs .jobs.SynchronizeLotCodes.execute(SynchronizeLotCodes.java:31)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool $WorkerThread.run(SimpleThreadPool.java:525)
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden




_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: No snapshot for gid _EOIntegralKeyGlobalID
      • From: Lachlan Deck <email@hidden>
References: 
 >No snapshot for gid _EOIntegralKeyGlobalID (From: David Avendasora <email@hidden>)
 >Re: No snapshot for gid _EOIntegralKeyGlobalID (From: "Mr. Pierre Frisch" <email@hidden>)
 >Re: No snapshot for gid _EOIntegralKeyGlobalID (From: David Avendasora <email@hidden>)
 >Re: No snapshot for gid _EOIntegralKeyGlobalID (From: "Mr. Pierre Frisch" <email@hidden>)

  • Prev by Date: Re: Virtual host deployment question
  • Next by Date: Re: Virtual host deployment question
  • Previous by thread: Re: No snapshot for gid _EOIntegralKeyGlobalID
  • Next by thread: Re: No snapshot for gid _EOIntegralKeyGlobalID
  • Index(es):
    • Date
    • Thread