Thanks Chuck.

I added this rule to my app. Hopefully that addresses the issue.

100 : (pageConfiguration like 'QueryPerson*' or task = 'queryAll') => 
refreshesRefetchedObjects = "true" [com.webobjects.directtoweb.Assignment]

Tim

On Jun 3, 2013, at 4:52 PM, Chuck Hill <ch...@global-village.net> wrote:

> It does not sound to me like what you are locking on is the problem.  It 
> looks like your object store is getting out of sync with the database (this 
> happens when you run multiple instances or something else is writing to the 
> database).  To recover from this, you need to re-fetch (refreshing) the 
> object(s) that are causing this problem.  
> 
> EOGeneralAdaptorException: updateValuesInRowDescribedByQualifier -- 
> er.extensions.jdbc.ERXJDBCAdaptor$Channel method failed to update row in 
> database
> at 
> com.webobjects.eoaccess.EODatabaseContext._exceptionWithDatabaseContextInformationAdded(EODatabaseContext.java:4504)
>    ... skipped 1 stack elements
> at 
> com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:376)
> at 
> com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.java:3192)
> at er.extensions.eof.ERXEC._saveChanges(ERXEC.java:1179)
> at er.extensions.eof.ERXEC.saveChanges(ERXEC.java:1102)
> at 
> er.directtoweb.pages.ERD2WInspectPage.tryToSaveChanges(ERD2WInspectPage.java:232)
> at 
> er.directtoweb.pages.ERD2WInspectPage.submitAction(ERD2WInspectPage.java:282)
> at 
> er.modern.look.pages.ERMODInspectPage.submitAction(ERMODInspectPage.java:101)
> 
> My WOVNG (aka The Unfinished Framework) presentation from WOWODC a few years 
> back talks about this this.
> 
> 
> Chuck
> 
> 
> On 2013-06-03, at 4:17 PM, Tim Worman wrote:
> 
>> Thanks Chuck.
>> 
>> Well, what has maybe changed is that more of my apps are moving toward using 
>> the same PERSON object. Thank you ERXPartial by the way. But maybe that 
>> creates collisions.
>> 
>> So, if it does become more problematic. What should I lock on? :-) 
>> modifyDate seems on the surface to be a pretty good candidate. But, what do 
>> others choose if it isn't a good candidate?
>> 
>> Tim
>> 
>> On Jun 3, 2013, at 3:34 PM, Chuck Hill <ch...@global-village.net> wrote:
>> 
>>> It depends on your database.  If that has not changed recently, then this 
>>> is probably not the source of your problem.  Usually this either works 
>>> reliably or does not work, also reliably.  :-)
>>> 
>>> 
>>> On 2013-06-03, at 3:21 PM, Tim Worman wrote:
>>> 
>>>> David:
>>>> 
>>>> I do lock on a last updated attribute (modifyDate) that is a timestamp. I 
>>>> have always done this in all my models - probably since when I was first 
>>>> trained by Apple, that was how our early models were built.
>>>> 
>>>> Then modifyDate is always updated by a editing context delegate.
>>>> 
>>>> Is this something I should take out? I'm concerned about what could happen 
>>>> after all this time. I do have multiple apps that use the same "Person" 
>>>> entity to make relationships and such so maybe the locking collision is 
>>>> there.
>>>> 
>>>> Tim
>>>> UCLA GSE&IS
>>>> 
>>>> On Jun 3, 2013, at 3:01 PM, David LeBer <dleber_wo...@codeferous.com> 
>>>> wrote:
>>>> 
>>>>> Tim,
>>>>> 
>>>>> Have you checked all of the usual suspects for optimistic locking 
>>>>> problems in your model?
>>>>> 
>>>>> Locking on blobs and timestamps are the two that come to mind.
>>>>> 
>>>>> We've run D2W apps in production for ages without these kinds of 
>>>>> problems, so it is not a widespread issue that needs an across the board 
>>>>> fix.
>>>>> 
>>>>> D
>>>>> 
>>>>> --
>>>>> David LeBer
>>>>> Codeferous Software
>>>>> 
>>>>> On 2013-06-03, at 5:50 PM, Tim Worman <li...@thetimmy.com> wrote:
>>>>> 
>>>>>> Ramsey:
>>>>>> 
>>>>>> Thanks much. I'll check out freshness explorer.
>>>>>> 
>>>>>> What do you do for D2W typically? Clobber all fetches with a rule and 
>>>>>> have it always refreshRefetchedObjects for everything or do you 
>>>>>> typically only put a rule in for certain views and relationships?
>>>>>> 
>>>>>> Tim
>>>>>> 
>>>>>> On Jun 3, 2013, at 1:19 PM, Ramsey Gurley <rgur...@smarthealth.com> 
>>>>>> wrote:
>>>>>> 
>>>>>>> 
>>>>>>> On Jun 3, 2013, at 12:06 PM, Tim Worman wrote:
>>>>>>> 
>>>>>>>> an optimistic locking problem I believe. If I kick a new instance 
>>>>>>>> everything is fine.
>>>>>>> 
>>>>>>> That sounds like you need to refreshRefetchedObjects on your fetch 
>>>>>>> spec. If you've previously fetched a row, and then another instance 
>>>>>>> changes that same row, then you fetch the row again in the first 
>>>>>>> instance, the snapshot is not refreshed unless you tell it do so 
>>>>>>> explicitly.  
>>>>>>> 
>>>>>>> With the default false value for refreshRefetchedObjects, you can 
>>>>>>> actually fetch with a qualifier q, and then filter your fetched array 
>>>>>>> with q in memory and get a smaller array of results. 
>>>>>>> 
>>>>>>> I suggest playing around with the freshness explorer app for a few 
>>>>>>> minutes. I found the results to be eye opening.
>>>>>>> 
>>>>>>> https://github.com/nullterminated/ponder/blob/master/ERR2d2w/Support/FreshnessExplorer.zip
>>>>>>> 
>>>>>>> Ramsey
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> 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:
>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/dleber_wodev%40codeferous.com
>>>>>> 
>>>>>> This email sent to dleber_wo...@codeferous.com
>>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> 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:
>>>> https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>>>> 
>>>> This email sent to ch...@global-village.net
>>> 
>>> -- 
>>> Chuck Hill             
>>> Executive Managing Partner, VP Development and Technical Services
>>> 
>>> Practical WebObjects - for developers who want to increase their overall 
>>> knowledge of WebObjects or who are trying to solve specific problems.    
>>> http://www.global-village.net/gvc/practical_webobjects
>>> 
>>> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest 
>>> Growing Companies in B.C! 
>>> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of 
>>> Canada’s Fastest-Growing Companies by PROFIT Magazine!
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
> 
> -- 
> Chuck Hill             
> Executive Managing Partner, VP Development and Technical Services
> 
> Practical WebObjects - for developers who want to increase their overall 
> knowledge of WebObjects or who are trying to solve specific problems.    
> http://www.global-village.net/gvc/practical_webobjects
> 
> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest Growing 
> Companies in B.C! 
> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of 
> Canada’s Fastest-Growing Companies by PROFIT Magazine!
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 


 _______________________________________________
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:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to