If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Are you killing the session from the os?
If so check v$session to see if the session is still open.

You can of course kill a session from oracle.
When you kill the session from Oracle, Oracle still has to
rollback any uncommitted changes from the session. It is
probable that the lock will remain until the rollback is complete.

I'm not aware of a way that you can immediately release the lock for a session that is disconnected and rolling back.

Think of it like this, if you need a lock on a table for a transaction, is it fair to say that you need the lock until the transaction either is finished committing or finished rolling back?

If you tune the transaction to make it run faster, then when it releases the lock isn't as critical.

You should run the transaction with sql_trace and timed _statistics turned on and then run tkprof on the trace file to get an idea of what is happening in your transaction. You can also get good information from statspack.