Hello there,

as Alice said, it gets couriouser and couriouser. I am now logging SQL, and -- 
at least to me -- it seems my application is SELECTing way too often.

The code is still related to the price offers of my previous posts; this time 
though I am using the default EC and I am not setting fetchTimestamp.

I am creating new objects in an entity DBPriceOffer and adding them to 1:N 
relationship of an entity DBUser -- all of them to the same user.

Now, what I would (naïvely?) assume is that
(a) the first time this happens, the user's price offers _might be_ fetched 
(not necessarily, but possibly)
(b) nevertheless, when they _are_ once fetched into the EC, they won't be 
re-fetched anytime soon, for EC caches them and EOF does not make unnecessary 
roundtrips to the DB.

They get re-fetched though -- each sweet time again, with the same EC, no 
fetchTimestamp. My app never refaults nor refreshes anything. There's about 95 
% free heap, so there should be no flushing of soft caches, if WO uses them at 
all. My current code looks like this:

===
        DBPriceOffer o=new DBPriceOffer()
        createdBy.editingContext.insertObject(o)
...
println "WEIRD 27 newo: $o, creator: $createdBy // EC:${o.editingContext()} 
(FTS:${(System.currentTimeMillis()-o.editingContext().fetchTimestamp())/1000} 
s)"
o.addObjectToBothSidesOfRelationshipWithKey(createdBy,'user')
//createdBy.addObjectToBothSidesOfRelationshipWithKey(o,'priceOffers') // tried 
this too, works precisely same way
println "WEIRD 31
===

and adding price offers through this code _always_ re-fetches the user's 
relationship into which they are being added:

===
WEIRD 27 newo: <DBPriceOffer@1247321477 PK:null N /EC:176991315>, creator: 
<DBUser@2069151341 PK:1000008 Name:'cl' /EC:176991315> // 
EC:er.extensions.eof.ERXEC@a8cac53 (FTS:3996.348 s)
14:09:16.912 DEBUG  evaluateExpression: 
<com.webobjects.jdbcadaptor.FrontbasePlugIn$FrontbaseExpression: "SELECT ... 
FROM "T_PRICE_OFFER" t0 WHERE t0."C_CREATOR_ID" = 1000008" withBindings: >
14:09:16.922 DEBUG 179 row(s) processed
WEIRD 31
...
WEIRD 27 newo: <DBPriceOffer@81493054 PK:null N /EC:176991315>, creator: 
<DBUser@2069151341 PK:1000008 Name:'cl' /EC:176991315> // 
EC:er.extensions.eof.ERXEC@a8cac53 (FTS:4001.53 s)
14:09:22.090 DEBUG  evaluateExpression: 
<com.webobjects.jdbcadaptor.FrontbasePlugIn$FrontbaseExpression: "SELECT ... 
FROM "T_PRICE_OFFER" t0 WHERE t0."C_CREATOR_ID" = 1000008" withBindings: >
14:09:22.099 DEBUG 180 row(s) processed
WEIRD 31
...
WEIRD 27 newo: <DBPriceOffer@1879220176 PK:null N /EC:176991315>, creator: 
<DBUser@2069151341 PK:1000008 Name:'cl /EC:176991315> // 
EC:er.extensions.eof.ERXEC@a8cac53 (FTS:4006.075 s)
14:09:26.635 DEBUG  evaluateExpression: 
<com.webobjects.jdbcadaptor.FrontbasePlugIn$FrontbaseExpression: "SELECT ... 
FROM "T_PRICE_OFFER" t0 WHERE t0."C_CREATOR_ID" = 1000008" withBindings: >
14:09:26.643 DEBUG 181 row(s) processed
WEIRD 31
...
===

and so forth: whenever I add a new price offer into the same user's 1:N 
relationship, the price offers of that user get re-fetched again.

I'm flabbergasted. Is this the normal WebObjects (or, rather, EOF) behaviour? 
Am I missing something of importance?

Thanks,
OC


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to