Which Diagnostic Tool should I use for Fusion Middleware Performance Tuning ?

 Today’s post is little different from my other posts as I need your help to identify right diagnostic tool for performance issues in Oracle Fusion Middleware (10g & 11g).

Issue : My client is using Oracle Fusion Middleware; 10g R2 (Portal/SSO/OID), 10g R3 (custom J2EE application) and 11g R1 (SOA on WebLogic). Application response time is acceptable for approx. 200 concurrent users but as user load increases (500+ concurrent users) performance degrades exponentially (only 30% of memory & cpu in use).

How would you troubleshoot performance issues in such scenario ?

Which tool would you suggest to identify performance bottlenecks in Fusion Middleware and Database stack ?

Performance Diagnostic Tool, I am planning to use is Application Diagnostics for Java (AD4J)

Why I decided AD4J ?

1. Most of my applications are J2EE and AD4J provides immediate visibility in Java Stack (Thread States and Java methods/line number)

2. Oracle AD4J facilitates tracing of Java requests to the associated database sessions and vice-versa thus highlight any problems that span different tiers (Middle Tier and Database Tier)

3. AD4J provides JVM tracing for fine-grained details of JVM activity, helpful in monitoring short transactions. Helpful to identify interdependency of threads, resource bottlenecks (DB, I/O, network ..)


Which tool you use to identify performance issues with J2EE application and Fusion Middleware (SOA, OAS, SSO, WebCenter and WebLogic ) ?

Share This Post with Your Friends over Social Media!

About the Author Atul Kumar

Oracle ACE, Author, Speaker and Founder of K21 Technologies & K21 Academy : Specialising in Design, Implement, and Trainings.

follow me on:

Leave a Comment:

jkanti says September 18, 2009

Hi Atul,

If your client is ready , i would recommend grid control.Its a very good way to collect diagnostics.As its tightly integrated with Oracle products , it would be a great tool.

Since you are using weblogic as well you can try and leverage JRockit Mission Control as well.



Atul Kumar says September 18, 2009

Thanks Kanti for suggesting Grid Control and Jrockit Mission control.

Regarding Grid Control , Is there any pack (with in grid control) which points badly written Java Code, frequent Garbage collection, poorly written SQL’s, database waits, O.S. poor I/O or memory leaks in JVM ?

I ‘ll investigate more on Jrockit Mission Control (We are using Sun JDK and not JRockit) but its worth looking diagnostic features in JRockit Mission Control.


Fahd Mirza says September 19, 2009

Atul, though not directly the solution, but you might get hint from 852151.1 metalink doc.


Atul Kumar says September 19, 2009

Thanks a lot for very useful doc however this if for Tuning JVM within database. In my case JVMs are in application tier (part of Oracle Application Server 10g & 11g). Once again thanks for pointing me to this Database JVM tuning doc

Kanti says September 23, 2009

Hi Atul,

Let me scope out each individual component here.
JVM monitoring traditionally has been done using JMX or Jconsole or with Java 5 ( java.lang.management ) interface.
All the tools most need to connect to the runtime JVM on the server.
So any tool which has history collection can take the information and show it from there.

So you can use JVM monitoring with Grid Control , AD4J or some other tool.

On the SQL side and database waits , yes Grid Control has the ability to do that.Oracle tool you see :).

Grid has some extensions for various third party systems as well inlcuding storage servers (http://www.oracle.com/technology/products/oem/extensions/index.html).

Not that you can’t have this in other products.
Big Brother or Cricket (Free/Open Source Software) could have plug ins available to monitor specific areas.

It all depends which specific area of the software you want to hit first.Try usemon( http://code.google.com/p/usemon/) as well if you feel it would help.



Atul Kumar says September 24, 2009

Thanks a lot for reply and you are right I should focus on individual components of my infrastructure and tune individual components

1. Webcache (for 10g AS & 11i)
2. HTTP Server
3. OC4J (JVM in 10g AS) – AD4J, Jconsole
4. JServ (9i AS part of 11i) – AD4J, Jconsole,
4. Sun JDK (JVM in WebLogic) – AD4J, Jconsole
5. PPE (Portal Page Engine) for 10g AS Portal
6. JDBC/Connection pool in 10g AS and Weblogic
7. Database – Enterprise Manager, AWR, ASH, Perfstat, AD4J

I’ll evaluate usemon and see if this is FFP (fit for purpose)

jaroslaw says March 30, 2011

Atul, could you give me a hint on your investigation what is better AD4J or useMon in your case?
I am going to evaluate them for our environment (Weblogic web app, OSB, SOA 11g/BPEL, Weblogic EJB3 WS).

UseMon is configurable to class level – instruments selected classes, AD4J seems to take periodical stacktraces of all threads

Are you using these tools to investigate performance problems of SOA 11g (BPEL processes) or only standard JEE web applications?

Add Your Reply