Like the poltergeists, I’m baaack. I’m back to my usual health, and while I’m still pretty horribly snowed under, I think that enough of the worst of it is over that I can generally commit to my “Updates Mondays” schedule again. This has been a *long* hiatus (over 6 motnths), and I’m very glad to be back among the lang of the living. I’ve missed this blog and the ADF community generally.
Although I plan to get back to the ADF BC Tuning series soon, I want to use this post to announce two things: The first piece of software I’m releasing on this site and my public (that is, not just as an audience member) at ODTUG Kaleidoscope, which will be next week in Monterey, CA.
First, the software. This is actually related to one of the talks I’ll be giving at ODTUG, and tangentially related to another. But even if you aren’t going to the conference, I hope you’ll find it useful. It’s an extension of the ADF BC framework that allows you to create the following 100% declaratively:
- Entity object definitions (including support for optimistic or pessimistic locking and Refresh After… settings) that use Package APIs instead of DML
- View object definitions (whether entity-based or not, and including support for query parameters) that use Package APIs instead of SELECT statements
- Associations and view link definitions involving the above
You can get the framework here.
At ODTUG, I’ll be participating in the following:
- Tuesday, 10:30-12:00, in Regency Ballroom I: I’ll be delivering the paper, “Package-Based ADF.”
- Tuesday, 2:45-3:45, in Grove: I’ll be delivering the paper, “Extreme Reusability for Oracle JDeveloper and ADF.”
- Tuesday, 5:15-1:15, in Windjammer II, III & IV: I’ll be participating in the Sundown Session- Middleware and SOA.
- Wednesday, 1:30-5:15, in Cyprus III: I’ll be on a panel, “A Guide to Fusion Web Development with JDeveloper 11g,” with Peter Koletzke and Duncan Mills.
Hope to see you there!
I’m back from the wilds of December, and to my regular schedule. I had intended to talk about view links this week, but I realized there were two important things about tuning view objects that I forgot to discuss in Part 1 or Part 2: View link consistency and in-memory filtering.
View Link Consistency
Like association consistency, view link consistency affects whether new rows appear in the query collections for accessors (view link accessors this time, rather than association accessors). But it does something more: It affects how new entity rows appear in the query collections of view objects.
Continue reading ADF BC Tuning V: View Objects, Part 3
Continuing on from the last post, we’re looking at ways to tune ADF view objects for optimal performance and resource management.
In most applications, the user needs to be able to scroll through data both forwards and backwards–to return to a previous row in addition to simply being able to scroll forward, or to find rows an earlier view row after finding a later one. Because of this, by default, once rows from a view object’s query result are read into the view cache, they stay there. If your JDBC fetch size is 18, then initially, only 18 rows will be in the view cache, but when request rows outside the first 18, that number goes up to 36, then 54, then 72, and so on.
Continue reading ADF BC Tuning IV: View Objects, Part 2
Now that we’ve looked at tuning entity objects and associations, we’ll turn to talking about tuning your ADF view objects for good performance and memory management. There’s a lot to say about tuning view objects (more than for any other business component, in my opinion), so I’m going to break this topic up over two posts. This week, we’ll discover the reasons for and against basing read-only view objects on entity objects, learn how to control how much data is fetched into the middle tier at one time (and how to optimize this for your particular case), and talk about what passivation of view objects is and how to control whether and how much of it happens. Next week, we’ll talk about query-level range paging, forward-only mode, and the spill-to-disk feature for handling very large caches.
Continue reading ADF BC Tuning III: View Objects, Part 1
Last week, I talked about tuning your ADF entity objects for maximum performance. This week, I’m going to talk about ADF associations.
Custom Association Views
One of the concepts I covered last week was an entity object’s default query, the all-columns query that would be created in a default view object for that entity object. I also talked about one place where the default query is used, even if you don’t create a default view object: entity object fault-in.
But there’s another place that this possibly inefficient query gets used, at least by default: Whenever your business logic traverses an association accessor.
Continue reading ADF BC Tuning II: Associations