Up until recently, it was not possible to get users cleanly off the database. The options
you had were
From 7.3, Oracle sneaked a "shutdown transactional" mode into the database, which
waited for everyone to complete active transactions before shutdown, which they then
documented in the 8.0 and (I think) 7.3.4 release.
- Issue 'alter system kill session' commands, but in this way, the current transaction
for a user would be abandoned
- Perform a 'shutdown immediate' to get everyone off.
From 8i onwards, there is now a facility to have this transactional control at
a session level. The new syntax is
alter system disconnect session 'sid,serial#' post_transaction;