03-20-2009 11:41 AM
Hi All,
I am getting a runtime error on a custom program as DBIF_RSQL_SQL_ERROR.The log from SM 21 says some deadlock has happend.
Error is coming with the following code
005060 IF NOT lt_update_yppplrout_d[] IS INITIAL.
> UPDATE yppplrout_d FROM TABLE lt_update_yppplrout_d.
005080 CLEAR lt_update_yppplrout_d.
005090 REFRESH lt_update_yppplrout_d.
005100 ENDIF.
005110
Did anything wrong in the code?
03-20-2009 12:17 PM
Hi ,
Use ENQUEUE and DEQUEUE function modules before and after updating the table respectively and try.
Check in SM12 if there are any locks.
Regards,
Deepthi
03-20-2009 11:43 AM
There is no problem with the syntax.Deadlock is a situation wherein more than one user is trying to update the database at same time.So system will not allow it.Try to run this program again.
03-20-2009 11:45 AM
Before updating yppplrout_d create a enquee dequee for the table and call the respective F.M
Hope it helps
03-20-2009 11:47 AM
Hi,
- You should create a lock object for this table, if one does not exist already..
- Lock table before updating
- update table
- unlock table
03-20-2009 11:48 AM
UPDATE yppplrout_d FROM TABLE lt_update_yppplrout_d.
the syntax you are using is correct.
Deadlock is a situation where if your porgram gets stuck it will give you dumb.
May be if simultaneously more than One user had acssed the same resoures,
Table,
Database,
Workprocess.
Check the lock objects also.
Just try to run you program again..
Regards,
Gurpreet
03-20-2009 12:17 PM
Hi ,
Use ENQUEUE and DEQUEUE function modules before and after updating the table respectively and try.
Check in SM12 if there are any locks.
Regards,
Deepthi