Event handler is functionality provided by the Oracle Identity Manager that is used as the important part of any Oracle IDM Implementation project.
It is not uncommon that Event Handlers are customised. In fact they provide an extensibility framework to the Oracle Identity Manager. Some times we have multiple post process event handlers against an event. This happens when you wish to perform multiple actions when an event takes place. If there is any open connection or if any custom event handler is consuming more time in execution then it can slow down the entire Oracle Identity Management server.
To spy the event handler and check which event handler is creating issue in OIM, Oracle have given a Monitoring tool which make us to check the performance of event handler.
The steps are listed below
Go to weblogic console and click on deployment .
In list search for the dms.war if not present then click on "install "
and install following war file.
<ORACLE_HOME>/modules/oracle.dms_11.1.1/dms.war
Now open browser and hit thie URL
OIM_HOST:PORT/dms/Spy
where
OIM_HOST=host or IP address of OIM
port= Port number at which OIM is running
It will ask for the credential provide weblogic or OIM xelsysadm credential.
after login in left panel you can see the list where find for the "Event Handler", click on this and on right panel you will be able to see all the custom and OOTB Eventhandler.
Check for the Active thread if the Active thread count is high then review the custom even handler code again.
Further information on Event Handlers -
You can write event handlers for following types of events
Pre-Process: This is triggered BEFORE the transaction gets executed
Post-Process: This is triggered AFTER the actual transaction is executed
Validation: This is triggered BEFORE the transaction begins and you should use this kind of event handler to prevent the transaction from happening if the validation fails.
Although you can execute any kind of long running code asynchronously via event handlers, however it is not recommended to do so. In such cases you must consider creating a scheduled process instead.