Among many new features added for 12.2.1 version of Oracle Fusion Middleware (announcement link
) and demoed at this year's recently concluded Oracle Open World, I'm particularly excited about brand new diagnostics feature of Oracle SOA Suite called IWS Reports - being the lead designer and implementer of this project.
IWS stands for Integration Workload Statistics and is intended to provide Oracle DB AWR like diagnostics for SOA applications. At high level, IWS can help user with two common challenges faced in SOA:
1 - Scaling Issue
2 - Performance Bottlenecks
Diagnosing performance and scalability issues in SOA can be hard. Performance of a system depends on number of factors. SOA Systems pose particular challenge since large installations typically involves interactions between partners and services - internal and external, stateful and stateless components, synchronous and asynchronous communications, deployment over multi-domain clusters etc.
Main causes for performance/scalability issues:
- Insufficient resources - CPU/Memory/network bandwidth
- Improper configurations - thread pools/data-sources etc.
- Slow partners
- Slow database (back-end)
- Lower stack (such as application server or operating system) performance issues
The above causes can manifest in following:
- Lower overall throughput
- Large increase in response time
- Backups in global queues
- System stuck in extreme cases
- Random errors/non-deterministic behavior (extreme low memory situations)
IWS Reports provide variety of statistics such as system resource usage, message flows at key points in the system, backlogs at various components and activity execution times which can diagnose performance/scaling issues.
IWS in nutshell
- Helps in identifying bottlenecks and/or backups in the system
- Useful for tuning for scaling or performance improvement
- Snapshot based (configurable)/Automatic
- Central - collects stats from components and bindings/adapters in single output
- Lends top-down/outside-in or direct analysis
- Statistics maps to user application/project environment
- Single point filtering based on Application/Composite/Component
- Adds very little memory/processing overhead. Can be left always-on in production systems (off by default)
- Snapshots persisted - for historical analysis/bench-marking/baseline and snapshot comparison
Note that there are two patents pending around concepts of diagnostics and backlog calculations as used in IWS Reports.
In series of follow up articles I'll explain features of this new tool in more detail using simple scenario and also explain the methodology that can be used for diagnosing performance or scaling issues. Will also provide some internal details about design and architecture.