1) Dynamic Monitoring Service (DMS) is out of the box Performance Diagnostics tool for FMW. It enables various Fusion Middleware components(OIM) to supply data with their performance data, state and on going behavior. In terms of data flow, FMW pushes data into DMS. DMS service is Enabled by default.
2) Apart from OIM other FMW components also uses DMS such as ADF, Weblogic Server, JDBC and HTTP Server.
3) DMS monitor’s all the OIM services, internal components like platform and resources like data sources. All these services monitored without any code change.
4) Also, custom components written by customers like scheduled task, event handlers are monitored automatically by DMS.
5) For OIM Reconciliation, DMS monitoring code is placed in 4 locations
–> OIM Service Invocations
–> Orchestration event handler
–> Scheduled Job
–> Async Handler
6) DMS metric data can be viewed via multiple ways.
a) DMS Spy servlet (/dms/Spy) – Available on Admin and manage servers as well. For a cluster view from Admin Server will give you metrics for all managed servers
b) WebLogic Diagnostic Framework (WLDF)
c) WLST commands
e) Enterprise Manager
f) WSADMIN ( For IBM WebSphere)
7) DMS metrics can be easily collected to a file which can then be shared with Oracle Support for debugging any issue. I will try to cover that in separate blog.
8) Individual DMS metrics can be resetted without restart of OIM Server. For eg: To reset Metrics for Scheduled job “Evaluate User Policies” under OIM_ScheduledJob metric: http://<host>:7001/dms/Spy?operation=reset&format=raw&name=/Evaluate%20Us er%20Policies
Now, lets have a look at the Dynamic Monitoring Service (DMS) metrics specifically for reconciliation.
a) Firstly, lets have some data to analyze. Lets run the OUD target reconciliation so that reconciliation events gets generated which will trigger the DMS metrics for reconciliation collected.
b) Login to sysadmin console and click on Scheduler under System Management. Run LDAP Connector User Search Reconciliation
c) Remove Latest Token
d) Make sure couple of recon events gets generated for LDAP User under Event Management when you search.
e) This time run the reconciliation again ( This time Latest Token. Will have the last recon run time) We would just run the incremental recon.
f) During reconciliation the metrics will be collected at 4 places :-
Schedule Job – This captures how much time it took to capture the events from target and how much time it took to create the event
Processing the Event- Action Task – Reports how much time it took to process the events
Post processing – Event Handlers – How much time it took to execute any post process event handlers attached.
Audit Handler – Time taken to record/process audit
g) Now lets look at metrics via my favourite user friendly method. Login into DMS.
h) On the left hand side scroll down and click on OIM_ScheduledJob . This will open the various scheduled jobs in OIM on right hand side. Scroll down on the right side to locate LDAP Connector User Search Reconciliation. This is the job we ran and we would like to look at the metrics for this job.
i) Lets analyze the metrics. This is interesting part 🙂
Active threads – 0 – This shows the active threads currently running at the time of the metrics collection. If the scheduled job is running this would be a non zero number
Ave msecs – This indicates average time it took by this scheduled job. I ran the scheduled job 3 times (completed ops) . So the average will be for these three jobs.
Completed ops – Number of times this scheduled job has run
MaxActive Threads – maximum number of threads used during the run
MaxTime – Maximum time taken by a single run among all the runs.
minTime – This is the minimum time taken by this job among all the runs.
Time – This is the total time taken by this job among all the runs.
Similar you can look around and observe so much details easily which can be useful for Performance Diagnosis.