If you refer on what or how to contribute to Castor: it's up to you what
you like most to work on. A good starting point is to check jira for
issues you like to work on. If you do not have time for deep code
analysis there are also some things you can do but they may not be very
intersting.

- cleanup checkstyle and compiler warnings (e.g. Java generics)
- write a howto on long transactions including persistence of timestamps
- help to migrate docs to docbook

Regards
Ralf

Ralf Joachim schrieb:
> 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: <dev@castor.codehaus.org>
>> 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: <dev@castor.codehaus.org>
>>>> 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

Reply via email to