How To Audit Imports and Exports in Deployment Manager (OIM 11gR2PS2).
While working on a deployment of OIM 11gR2PS2 I recently had an issue where a lookup I had migrated from Dev to QA didn’t look correct in QA. Some of the values were missing from the lookup. I knew I had imported the lookup, but either someone edited the lookup or I imported something incorrectly and I wanted to know which.
Everything else imported correctly, except for this one lookup. In order to be figure out what happened, I went through the tables that store information about deployment manager and was able to see what was deployed and when. The nice thing about these tables is it not only stores the file name, the description, and the date and time the file was imported (or exported,) but it also gives the entire contents of the xml stored in a text field so you can review and be certain of exactly what you deployed.
There are 5 tables containing information about exports/imports. They are…
EIF: Each row contains information about an export or import file
EIH: Each row contains information about a particular session
EIL: Each row contains any locks
EIO: Each row contains information about an object that was imported or exported
EIS: contains all substitutions done during an import session
Using these tables in a variety of ways I was able to determine what exports and imports had been done, the contents of the exports and import files, if the sessions were successful and many other things.
Let’s say you want to see what objects were created by a particular import file. You want to make sure that your import was done correctly and validate what objects were touched and what the content of the import file was. The following PL/SQL statement will return that information and more…
“select EIF.EIF_FILENAME,EIF.EIF_DESCRIPTION,EIH.EIH_OPERATION,EIH.EIH_CREATE,EIF.EIF_USER, EIO.EIO_TYPE,EIO.EIO_OBJECTNAME,EIF.EIF_CONTENT from EIF INNER JOIN EIH ON EIF.EIH_KEY = EIH.EIH_KEY RIGHT OUTER JOIN EIO ON EIO.EIH_KEY = EIH.EIH_KEY where EIF.EIF_FILENAME = ‘<FILENAME.XML>’;”
This statement returns:
1. The name of the file that was imported;
2. The description of the import that had been written into the import xml;
3. The operation – to confirm if it was from an import or export operation;
4. The date it was imported and by which user; and,
5. The object type, the object name, and the entire contents of the xml file that was used.
This provided everything I needed to confirm my import file had been correctly created contained the correct information.
Questions, comments or concerns? Feel free to reach out to us below, or email us at IDMWORKS to learn more about how you can protect your organization and customers.