One of my customers had a high turnover rate. Sometimes we ran into some ODI objects which are locked by a developer who has gone. That triggered a question. What if I delete an ODI user while it has locks on objects. So I gave it a try, and while trying this other cases also pop-up. I also tried them on my VM.
Case 1: Deleting a user with locked objects
My expectation was being unable to delete a user. I was expecting there should be a FK between user and lock tables in repository. But I was able to delete. Then I thought about two scenarios,
a) object will be unlocked
b) object will stay locked and when I try to visualize lock, ODI will crash since there will be nothing returned from lock query.
I was wrong. You may find the screenshot about how ODI responds to deleting a user with locks.

I can open object, ODI will pop-up “This object is locked by DEVELOPER. You can not edit” dialog. You can view everything in the object. But to begin using object again, you need supervisor to unlock it.
Case 2: Deleting a user who created some objects
In that case I was expecting to find “Created By:” text box in object’s version tab to be empty. But I was wrong again. ODI just worked fine. When I checked the repository, I saw that ODI holds usernames for these text box not the user ID’s.
Case 3: Deleting an online user
After first two cases and failures of my expectations, now I had nothing to expect. I would just try and see. I created a user, open another ODI instance, connect with new user and deleted the user. Then I tried to take some actions in ODI. Some I was able to, some I was not.

Things I was able to:
- View operator logs
- View topology definitions
- View models
- Create scenarios

Things I was not able to :
- View interfaces
- Run interfaces or scenarios
- Selective Reverse Engineering a model
- Edit topology definitions.


If you have some other cases for me to try please write in the comments area.
Thanks for reading, dont forget to share & comment.