Sorry, I do not understand. Can you please explain what you want to know. According to the last mail I thought things work now.
Ralf Stephen Ince schrieb: > In order to do a long transcation the object has to be in the cache. > Is there anything I can do? In my case I am updating the object 60 > seconds later. > > > Steve > > ----- Original Message ----- From: "Ralf Joachim" > <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Tuesday, September 30, 2008 5:40 PM > Subject: Re: [castor-dev] ObjectModifiedException error > > >> Hi Stephen, >> >> there should be no need to reload the cached entities. >> >> Regards >> Ralf >> >> >> Stephen Ince schrieb: >>> Ralf, >>> Thx for your reply and help. I got it to work by using 60 ttl. >>> >>> <cache-type type="time-limited" capacity="60"/>. >>> db.begin(); >>> >>> db.load(UserScenario.class,u.getUserScenarioId(),AccessMode.ReadOnly); >>> System.err.println("updating("+u+")=" + u.jdoGetTimeStamp()); >>> db.update(u); >>> db.commit(); >>> >>> >>> >>> Is it necessary for me to reload the object in the cache? >>> db.begin(); >>> System.err.println("updating("+u+")=" + u.jdoGetTimeStamp()); >>> db.update(u); >>> db.commit(); >>> >>> >>> Steve >>> ----- Original Message ----- From: "Ralf Joachim" >>> <[EMAIL PROTECTED]> >>> To: <[email protected]> >>> Sent: Tuesday, September 30, 2008 12:32 PM >>> Subject: Re: [castor-dev] ObjectModifiedException error >>> >>> >>>> Hi Stephen, >>>> >>>> till 1.3 release of Castor there are 2 requirements for entities that >>>> are used at long transactions. >>>> >>>> - the entity have to implement the TimeStampable interface >>>> - the entity has to stay in cache from being loaded until update is >>>> called with it >>>> >>>> According to your test scenarios the second seams not to be the case >>>> (case 2). >>>> >>>> Backgroud of the ObjectModifiedException in cases 1 and 3 is, that an >>>> entity always gets a new timestamp value when it is loaded from >>>> database. As the entity you explicitly loaded into cache in cases 1 >>>> and >>>> 3 got a different timestamp the ObjectModifiedException gets thrown at >>>> update. >>>> >>>> To prevent this you have to use cache type 'unlimited' or >>>> 'time-limited' >>>> with a ttl that is bigger than the time between you initial load >>>> and the >>>> call to update. Having said that this also does not help if the entity >>>> is part of an extends hierarchy. There is a open issue (castor-1217) >>>> about that. >>>> >>>> If keeping entities in cache for such a long time is not an option to >>>> you, maybe according to the number of entities involved, or the entity >>>> is part of an extends hierarchy, there are only 2 options. >>>> >>>> - copy changed properties of the entity by hand into an entity >>>> loaded in >>>> the transaction >>>> - switch to the upcoming 1.3 release which allows to persist the >>>> timestamp in database >>>> >>>> If you like to know more about persisting timestamp let me know and >>>> I'll >>>> point you into the right direction. To reduced turnaround you may >>>> want >>>> to connect to castor channel at: http://irc.codehaus.org/ >>>> >>>> Regards >>>> Ralf >>>> >>>> >>>> Stephen Ince schrieb: >>>>> I am getting a "org.exolab.castor.jdo.ObjectModifiedException: >>>>> Timestamp mismatched!" error when saving a long transactions. How can >>>>> I avoid this. I have tried the following. >>>>> >>>>> case 1: >>>>> db.begin(); >>>>> >>>>> db.load(UserScenario.class,u.getUserScenarioId(),AccessMode.ReadOnly)); >>>>> >>>>> db.update(u); >>>>> db.commit(); >>>>> >>>>> case 2: >>>>> db.begin(); >>>>> db.update(u); >>>>> db.commit(); >>>>> I get object not in cache error for this case. >>>>> >>>>> case 3: >>>>> db.begin(); >>>>> >>>>> db.load(UserScenario.class,u.getUserScenarioId(),AccessMode.ReadOnly)); >>>>> >>>>> db.commit(); >>>>> >>>>> db.begin(); >>>>> db.update(u); >>>>> db.commit(); >>>>> >>>>> Steve >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe from this list, please visit: >>>>> >>>>> http://xircles.codehaus.org/manage_email >>>>> >>>> >>>> -- >>>> >>>> Syscon Ingenieurbüro für Meß- und Datentechnik GmbH >>>> Ralf Joachim >>>> Raiffeisenstraße 11 >>>> 72127 Kusterdingen >>>> Germany >>>> >>>> Tel. +49 7071 3690 52 >>>> Mobil: +49 173 9630135 >>>> Fax +49 7071 3690 98 >>>> >>>> Internet: www.syscon.eu >>>> E-Mail: [EMAIL PROTECTED] >>>> >>>> Sitz der Gesellschaft: D-72127 Kusterdingen >>>> Registereintrag: Amtsgericht Stuttgart, HRB 382295 >>>> Geschäftsleitung: Jens Joachim, Ralf Joachim >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe from this list, please visit: >>>> >>>> http://xircles.codehaus.org/manage_email >>>> >>>> >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe from this list, please visit: >>> >>> http://xircles.codehaus.org/manage_email >>> >> >> --------------------------------------------------------------------- >> To unsubscribe from this list, please visit: >> >> http://xircles.codehaus.org/manage_email >> >> >> > > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > -- Syscon Ingenieurbüro für Meß- und Datentechnik GmbH Ralf Joachim Raiffeisenstraße 11 72127 Kusterdingen Germany Tel. +49 7071 3690 52 Mobil: +49 173 9630135 Fax +49 7071 3690 98 Internet: www.syscon.eu E-Mail: [EMAIL PROTECTED] Sitz der Gesellschaft: D-72127 Kusterdingen Registereintrag: Amtsgericht Stuttgart, HRB 382295 Geschäftsleitung: Jens Joachim, Ralf Joachim --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

