As to no lock manager, that's simply not true. The lock manager is included
in Oracle! If your program crashes, the background process PMON
will detect the crash. It will rollback the transaction automatically,
and this will remove the lock. Of course, in normal circumstances, the
lock will only disappear when the client session issues a commit or rollback.
As this is a select for update only individual rows are locked by it, not
the complete table!
Locks should be dropped when the crashed session is cleaned up by PMON.
If that isn't happening try killing the session manually.
You might also want to check out the dbms_lock.release( ) procedure.
If you havn't done so already, you should run the DBMSLOCK.SQL
script in the RDBMS directory under the SYS account to see who is holding
which locks.