This is a discussion on ORA 2049 error within the Oracle Database forums, part of the Database Server Software category; --> A process runs on a split database environment - connecting locally to the database db1 and remotely to the ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| A process runs on a split database environment - connecting locally to the database db1 and remotely to the database db2 (via database links). It deletes a bunch of rows in a table A in database db1 for a specific account and updates another table B in the database db2 for the same account. The access to table B is via a view (with a select clause to read all the rows of the table B via the database link). When we have 8 processes running at the same time, all of them die with the error "ORA-02049: timeout: distributed transaction waiting for lock" one after another after processing for some time. I know that An ORA 2049 is signalled if o you are blocked o you are in a distributed transaction (you are using a DB link, even just to read) o you wait for longer than distributed lock timeout In this case, the processes update distinct rows on the table B in the remote database db2. Also, even if only one process is run, it dies eventually with the above error after running for a long time. It seems to die immediately after the update on the table B in the remote database. I read that this could be due to ITL shortage deadlock. But, why would the error come even when only one process is running ? I found that the PCTFREE was 20 and INITTRANS was 1 on the table B in the remote database db2. Will increasing these values have any impact ? Any help would be really appreciated. |