Oracle IDM R2 PS2 provides some really efficient troubleshooting, monitoring and diagnostic features. This post will provide a quick overview of the same and delve into using one such feature to resolve a practical issue.
New Diagnostic Features: Overview
1. Orchestration diagnostics – The EM console can be used to drill down into the Orchestration related details of events within OIM
- A Dashboard to view recent operations and events
- Info regarding ALL the event handlers attached to a particular operation – including CUSTOM developed. No more digging into XMLs form MDS !
- Powerful search features for all Operations (search by Operation Type, Operation ID etc)
2. Dynamic Monitoring Service (DMS) is an Oracle FMW component which enables performance tracking of various OIM modules and services such as scheduled tasks, event handlers, platform resources etc. One can export DMS metrics for detailed introspection as well
3. Reconciliation Profile validation
- Validate Recon profiles via MBeans via EM console – great for debugging issues
- Also provides reconciliation tables related indices which can help compare Database tuning as per documented mandates
A detailed explanation of each of these features is difficult to cover in a single post – skipping this for a future blog post (series). For now, let us explore a real world use case where such diagnostic capability can be used
I happened to come across a particular issue and resolved it with the help one of the many OIM PS2 diagnostic features. This one happened to be related to OIM Reconciliation Profiles.
The problem statement
- Reconciliation job execution was not resulting in event creation.
- The server console logs pointed to a SAX parsing exception.
Time to use the new Reconciliation Profile validation diagnostic feature in PS2 (mentioned above) which enables us to validate and detect errors in the OIM Reconciliation Profile. It does so by exposing this service as an MBean. Sweet !!🙂
So how to go about this?
1. Log into EM console and take up the route shown in the snapshot below (yes, a picture is worth a thousand words and 10 minutes of writing something which can be easily portrayed via a visual medium!)
2. The next obvious step was to export the Recon profile XML itself in order to further drill down on matchingRule element (since there can be multiple such elements and the error indicates that one of them might be empty – hence the schema violation error resulting in a parsing error)
Exporting the recon profile XML via EM console
Note: This is not a diagnostic feature as such or a new functionality. This is present since OIM 11g R1 era
No need to execute manual processes – use the EM GUI to get the job done fast. Follow the snapshots
Finally – click on the Invoke button and you should have the profile exported to the location mentioned above
Note: If required, you can easily change/modify the XML and use the importMetadata operation of the same MBean to import with a single click (try it out)
The profile was exported in order to investigate it further. Let’s see what was the issue was
So, finally it is evident as to which matchingRule tag was empty.
Well, it all boiled down to a missing configuration in the Connector artifact – missing KEY field configuration for the child field (in the Process Definition).
Take away point
OIM is a feature rich product. Hence, things can get complicated at times and errors can get hard to debug. We saw how easy it was to drill down to the cause of the error and ultimately fix it
Why/How did this happen? That was not really the point of this post. In case you are inquisitive, looks like this is a bug in the connector !😉 That’s for a later post – maybe after further introspection
- Include the KEY field config for child field in Process Definition
- Recreate the Recon Profile
- Validate the same via EM console (already explained)
- Move on with your life !😉
Remember – bugs/errors/issues are an opportunity for us to learn and doscover something new. Software can never be perfect in a single go. Be patient, try to diagnose, know your tools, know how to use them – if there are no tools, just build one and blog about it !!😉
Until then. . . Cheers ! ! !