I have a problem with locking and not timing out in one of my Oracle databases. This session locks occur on certain transactions that come from Oracle Forms users. For instance, when some user requests to make a change on a locked object the transaction waits for the locked object to be released, but it waits indefinetely until killed by alter session.

I've tried the same in my testing database and it does kill the locked session after 60s, so I thought it has to be a configuration issue. I've checked the v$parameters DISTRIBUTED_LOCK_TIMEOUT and it is set to 60s in both databases.

Does anyone know where is the "locking session/transaction timeout" set?

Any help is greatly appreciated.

  • have you identified the code that is locking? Is it a table or row lock? Table locks might indicate that the coding can be improved – kevinsky Jan 22 '19 at 15:43
  • Hi, it is a row lock. The Oracle Forms data blocks have a "locking mode" property which can be set to different locking options. One of them (the one I'm using) locks the row whenever it detects that someone is changing its value on the form (I need it to work this way). – ArnauVJ Jan 22 '19 at 15:56

You can change distributed_lock_timeout at the instance level alter system set distributed_lock_timeout=<sec> scope=spfile; But what you are describing is a session modifiable parameter in 11g called ddl_lock_timeout and I’m not aware of anything that replicates that in 10g. The fact that it runs as expected in one environment and not the other means you might want to pull a list of parameter settings between the two and see what’s different.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.