@Ollyando - sorry, the longest title award goes to some spammer who was putting the complete message text in the subject line. I blocked all those messages, but seriously was anyone interested in shares in a ponzi scheme?
Regarding the WLS default data source options, agreed the defaults are meaningless for an ADF application. If you use the UI Shell's multitab feature, where each tab uses a separate task flow with a separate transaction, you easily blow that limit. If Oracle ever comes out with a preconfigured VM containing a demo ADF application running on WLS, I bet we will see the data source options totally changed.
In discussing the issues of AMs in the architecture you may remember during my Angels in the Architecture presentation approximately slide 17 (
http://sagecomputing.com.au/papers_presentations/ADF%20Architectural%20Patterns%20-%20LongBeach%20ODTUG%20minus%20pics.pptx) I said the issue of root vs nested AMs was worthy of another presentation, with the warning that getting this wrong will cause issues with your scalability, namely the number of database connections your app wants to take out. With this in mind, slide 17 showed 2 models of having a single root AM in the Common Model or a root AM per BTF application. If you take the later model, it's not possible to nest the BTF AMs under a single root AM at design time. Oh no I hear you say....
Luckily there's a number of solutions. Andrejus has one and you can see links at the end of my presentation that help you understand this. You won't be surprised to hear Andrejus has numerous other blog posts which are worth reading in this area too.
Another solution is built into framework itself if you use task flows. You'll be aware that task flows depending on your transaction options can effect the number of AM pools & connections:
1) Prior to 11.1.2 at runtime ADF undertakes an automagical nesting of design time root AMs used by chained task flows, dropping the number of database connections & AM pools considerably. You can read an explanation of the behavior via the following blog entry:
http://one-size-doesnt-fit-all.blogspot.com/2011/07/task-flows-sayonara-automated-nesting.html
I'm pecking this on my iPad so I'll save myself from describing the precise task flow options assuming you know them already. However if you don't please let me know and I'll write that up in a future post.
(Note the blog post mentioned above ends with a question how 11.1.2 implements the same nesting logic. I don't have a blog post to answer that but via helpful discussions with Oracle staff at OOW'11 and online, my understanding is as the following point...)
2) In 11.1.2.x the behavior has changed slightly. Database connections can be still conserved via the task flow options (ie. they're still shared), however all root AMs now get their own AM pools. In asking Oracle about this change, the response at the time was the trade off of extra AMs taking extra resources was worth it for the ability to tune each AM pool separately. To be fair they also said they see the overhead of the AM pool itself is minimal, though I'm unclear how I would verify this point.
In returning to your original post with guidance on the 4 "moving parts";
1) As Rutwik says, set your WLS connections to the max & you'll probably never bother to configure this ever again
2) Agreed AM pooling config is still a concern though Andrejus blogged some good posts on configuring this recently
3) & 4) These should reduce to only 1 area of concern if you use the task flow transaction options
Hopefully this means we've reduced your concerns from 4 points to 2?!
Once I start with Oracle I'm hoping I'll have time to write a white paper on understanding the database connection issues vs all the configuration options. No promises but it's an area I enjoy working on and explaining.
CM.