N/APosted on - 07/03/2019
Hi! I’m a computer science student. I often use Oracle for assignments and work, but today when I was using it, I am facing this ‘enq tx row lock contention’ error. I have no idea about this error. Is it because I’m doing something wrong, what can I do to fix this error, and how can I diagnose it?
Enq Tx Row Lock Contention Error Occurring While Using Oracle
This ‘enq tx row lock contention’ wait event indicates connection for a row-level lock. When one transaction is already deleting or updating rows, and some other tries to delete or update these rows, this wait event occurs.
You should try querying DBA_HIST_ACTIVE_SESS_HISTORY with WHERE like ‘enq:TX%.’ It will return you to the rows when the wait event was in progress.
After this, you have to check the BLOCKING_SESSION column.
It will tell you that session ID which was causing this ‘enq tx row lock contention’ wait event. After this try to query DBA_HIST_ACTIVE_SESS_HISTORY with session_id=<blocking session id from above query>.
By this, you will see SQL which is executing due to this blocking session. Take the list of SQL and use AWR report using the awrsqrpt.sql script. By this you will be able to see details of each SQL, by this, you will be able to find the blocking SQL