Sunday, December 8, 2013

ADF Development Survival Kit - Essentials for ADF Developer

This post is about our second session on UKOUG Tech13 conference. We were presenting and describing essential tools for successful ADF development. These tools are not available from Oracle, but can be implemented by yourself. I'm going to give a walk through for our session in this post.

1. Red Samurai Performance Audit

We believe monitoring of ADF BC and interaction with DB is the key for ADF application performance tuning. This is why we focus primarily on ADF BC and offer statistical information not available through Oracle Enterprise Manager and DMS servlet out of the box.

We offer this ADF performance audit tool for our customers only, there is no direct download. However, you can send me email with your request - you should describe ADF performance problem you want to fix, I will evaluate it and send install files to you.

Here you can see main dashboard for performance audit, displaying overall system performance - all transactions, logged users, query distribution per AM, number of users vs. number of activations:

Every Application Module performance is displayed using ADF dial gauge component:

We log following statistic for slow ADF performance:

Even more:

Overall performance overview:

This is how our audit is implemented (you can see more details in slides). Our ADF BC generic classes are injected into ADF application, statistical information is written to DB through separate thread. There is separate ADF application implemented as dashboard to review logged statistics:

2. PL/SQL code reuse

We were presenting custom made JDeveloper extension to call PL/SQL logic through declarative way, avoiding writing Java logic over and over again:

If you are interested in demo application and see how it works, let me know by email:

3. Semi-Automated Business Logic Reuse for Forms modernisation

Semi-Automated process was presented based on generic DB Validator to simplify PL/SQL or Web Service logic reuse in ADF applications. Here you can see diagram, send me email if you are interested in more details:

4. OJAudit extension for JDeveloper

Finally, we were presenting our extension for JDeveloper, implementing a set of custom OJAudit rules. We are going to merge it with ADF EMG OJAudit extension available for public download.


Jang-Vijay Singh said...

I added information about query execution times, fetch size, range size (that are actually effective at runtime as they can be overridden at different levels: View Accessor config, VO instance in AM instance etc.)
to the common ADFbc base classes.
- Also information about the AM session
- Currently I log this to a separate Audit log which can be configured separately or turned off after the app has been sufficiently monitored.
- This should be easy to route it to a DB - for this I would use your LogManager technique (which I suppose would spawn a separate thread to write to DB to avoid interfering with the main request thread).
- I just do this preemptively - it's a new application. I think it's good practice to initially monitor this information and later turn it down/off

Andrej Baranovskij said...

Sounds good !