I have got the below error.
“ORA-12829: Deadlock - itls occupied by siblings at block 456123 of file 506”
I have checked few sites ...
ORA-12829: Deadlock - itls occupied by siblings at block string of file string
Cause : parallel statement failed because all itls in the current block are occupied by siblings of the same transaction.
Action : increase MAXTRANS of the block or reduce the degree of parallelism for the statement. Reexecute the statement. Report suspicious events in trace file to Oracle Support Services if error persists.
I don't want to go directly change the MAXTRANS value suddenly in production.
Based on that, i have provided the below suggestions. I would like to share with you all.
The maximum number of concurrent sessions accessing the block 456123 at same time.
So due to this we are getting this error “ORA-12829: Deadlock - itls occupied by siblings at block 456123 of file 506”
I have checked that table “xxxxx table” and no one can access now.
In update statement, Dev team used PARALLEL hint and i suggested below steps to follow them.
1) Please rerun the job again. ( Because no one can access the table right now)
2) If you get the same error again, you can reduce the parallel hint value or without parallel hint to run the update statement.
Dev team tested and
1) Please rerun the job again. ( Because no one can access the job right now)
we were ran the job again and got the same error.
2) If you get the same error again, you can reduce the parallel hint value or without parallel hint and run the update statement.
We removed the parallel hint and re ran the job and got the same error again.
Root cause:
After that i have checked the table and that table having PARALLEL is enabled as default.
So i suggested to use NOPARALLEL hint, while running the update statement(/*+ noparallel “xxxxx table” */ ). They used NOPARALLEL hint and ran the update statement successfully.
I Hope this article helped you. Suggestions are welcome.
“ORA-12829: Deadlock - itls occupied by siblings at block 456123 of file 506”
I have checked few sites ...
ORA-12829: Deadlock - itls occupied by siblings at block string of file string
Cause : parallel statement failed because all itls in the current block are occupied by siblings of the same transaction.
Action : increase MAXTRANS of the block or reduce the degree of parallelism for the statement. Reexecute the statement. Report suspicious events in trace file to Oracle Support Services if error persists.
I don't want to go directly change the MAXTRANS value suddenly in production.
Based on that, i have provided the below suggestions. I would like to share with you all.
The maximum number of concurrent sessions accessing the block 456123 at same time.
So due to this we are getting this error “ORA-12829: Deadlock - itls occupied by siblings at block 456123 of file 506”
I have checked that table “xxxxx table” and no one can access now.
In update statement, Dev team used PARALLEL hint and i suggested below steps to follow them.
1) Please rerun the job again. ( Because no one can access the table right now)
2) If you get the same error again, you can reduce the parallel hint value or without parallel hint to run the update statement.
Dev team tested and
1) Please rerun the job again. ( Because no one can access the job right now)
we were ran the job again and got the same error.
2) If you get the same error again, you can reduce the parallel hint value or without parallel hint and run the update statement.
We removed the parallel hint and re ran the job and got the same error again.
Root cause:
After that i have checked the table and that table having PARALLEL is enabled as default.
So i suggested to use NOPARALLEL hint, while running the update statement(/*+ noparallel “xxxxx table” */ ). They used NOPARALLEL hint and ran the update statement successfully.
I Hope this article helped you. Suggestions are welcome.