This is wrong. You shouldn't be sharing a read/write DataContext between 
requests. I can't say with 100% certainty that this is causing this particular 
problem, but it is guaranteed to cause various consistency issues.  

I often use a pattern of 1 shared app-scoped DataContext for reads, and then 
create short-lived throwaway DataContexts to change objects ("short-lived" 
means a lifespan <= request duration).

Andrus

On Jan 24, 2011, at 12:35 PM, Bruno René Santos wrote:
> In the init() phase of each portlet (I'm using liferay) I call the 
> DataContext.createDataContext() to create a DataContext that is used 
> throughout the application (always the same instance, I create an object that 
> is passed as parameter to all other objects). And yes my app is not readonly 
> but I also do not try to write on the view... Have you ever thought how we 
> could handle these cases near the comment you left on the code? Could I try 
> like a commitChanges there? Any ideas are welcome :)
> 
> Thanx
> Bruno
> 
> Em 24-01-2011 10:18, Andrus Adamchik escreveu:
>>>  I am developing a web application so it is possible that some thread is 
>>> interfering on the refreshing of the Object Cache?
>> This depends on how you share a DataContext. If your app is not read-only, 
>> DataContext should not be shared.
>> 
>> Andrus
>> 
>> On Jan 24, 2011, at 12:09 PM, Bruno René Santos wrote:
>> 
>>> HoVPlanoContas is a view. And yes the id 129 exists. On that piece of code 
>>> you're expecting a committed object but you're getting a modified one... I 
>>> am going to analyze a little further why on this region of code this 
>>> happens (On other parts I dont get this error). But it would help to know 
>>> the purpose of this PrepareForAccess method and how the object starts as 
>>> HOLLOW and all of a sudden it is supposed to be committed (but in the end 
>>> is modified...). I am developing a web application so it is possible that 
>>> some thread is interfering on the refreshing of the Object Cache? Any other 
>>> ideas?
>>> 
>>> Thanx
>>> Bruno
>>> 
>>> Em 24-01-2011 09:43, Andrus Adamchik escreveu:
>>>> Can you confirm that there is a record for HoVPlanoContas in the database 
>>>> with id of 129? Is it reproducible?
>>>> 
>>>> Andrus
>>>> 
>>>> On Jan 24, 2011, at 3:03 AM, Bruno René Santos wrote:
>>>> 
>>>>> Hello all,
>>>>> 
>>>>> Im having an error when I access an object:
>>>>> 
>>>>> Caused by: org.apache.cayenne.FaultFailureException: [v.3.0.1 Aug 25 2010 
>>>>> 19:38:17] Error resolving fault for ObjectId:<ObjectId:HoVPlanoContas, 
>>>>> id=129>   and state (modified). Possible cause - matching row is missing 
>>>>> from the database.
>>>>>    at 
>>>>> org.apache.cayenne.BaseContext.prepareForAccess(BaseContext.java:171)
>>>>>    at 
>>>>> org.apache.cayenne.CayenneDataObject.readProperty(CayenneDataObject.java:230)
>>>>> 
>>>>> When I go to the line 171 of BaseContext there is this comment from 
>>>>> Andrus:
>>>>> 
>>>>> // TODO: andrus 4/13/2006, modified and deleted states are possible due to
>>>>>                // a race condition, should we handle them here?
>>>>> 
>>>>> Why this happens? Any solutions?
>>>>> 
>>>>> Thanx
>>>>> Bruno
>>>>> -- 
>>>>> Bruno René Santos | [email protected]<mailto:[email protected]>   | 
>>>>> Gestor de Projectos | Analista | Programador | Investigador
>>>>> 
>>>>> Holos - Soluções Avançadas em Tecnologias de Informação S.A.
>>>>> Parque de Ciência e Tecnologia de Almada/Setúbal . Edifício Madan Parque
>>>>> Rua dos Inventores . Quinta da Torre . 2825 - 182 Caparica . Portugal
>>>>> Phone: +351 210 438 686 . Fax: +351 210 438 687 . Web: www.holos.pt
>>>>> 
>>>>> 
>>>>> This email and any files transmitted with it are confidential and 
>>>>> intended solely for the use of the individual or entity to whom they are 
>>>>> addressed. If you are not the intended recipient or the person 
>>>>> responsible for delivering the email to the intended recipient, be 
>>>>> advised that you have received this email in error and that any use, 
>>>>> dissemination, forwarding, printing, or copying of this email is strictly 
>>>>> prohibited. If you have received this email in error please notify Bruno 
>>>>> René Santos by telephone on +351 210 438 686
>>>>> 
>>>> 
>>> 
>>> -- 
>>> Bruno René Santos | [email protected]<mailto:[email protected]>  | Gestor 
>>> de Projectos | Analista | Programador | Investigador
>>> 
>>> Holos - Soluções Avançadas em Tecnologias de Informação S.A.
>>> Parque de Ciência e Tecnologia de Almada/Setúbal . Edifício Madan Parque
>>> Rua dos Inventores . Quinta da Torre . 2825 - 182 Caparica . Portugal
>>> Phone: +351 210 438 686 . Fax: +351 210 438 687 . Web: www.holos.pt
>>> 
>>> 
>>> This email and any files transmitted with it are confidential and intended 
>>> solely for the use of the individual or entity to whom they are addressed. 
>>> If you are not the intended recipient or the person responsible for 
>>> delivering the email to the intended recipient, be advised that you have 
>>> received this email in error and that any use, dissemination, forwarding, 
>>> printing, or copying of this email is strictly prohibited. If you have 
>>> received this email in error please notify Bruno René Santos by telephone 
>>> on +351 210 438 686
>>> 
>> 
>> 
> 
> 
> -- 
> Bruno René Santos | [email protected] <mailto:[email protected]> | Gestor 
> de Projectos | Analista | Programador | Investigador
> 
> Holos - Soluções Avançadas em Tecnologias de Informação S.A.
> Parque de Ciência e Tecnologia de Almada/Setúbal . Edifício Madan Parque
> Rua dos Inventores . Quinta da Torre . 2825 - 182 Caparica . Portugal
> Phone: +351 210 438 686 . Fax: +351 210 438 687 . Web: www.holos.pt
> 
> 
> This email and any files transmitted with it are confidential and intended 
> solely for the use of the individual or entity to whom they are addressed. If 
> you are not the intended recipient or the person responsible for delivering 
> the email to the intended recipient, be advised that you have received this 
> email in error and that any use, dissemination, forwarding, printing, or 
> copying of this email is strictly prohibited. If you have received this email 
> in error please notify Bruno René Santos by telephone on +351 210 438 686
> 

Reply via email to