Hi,

Can you please specify the version of oracle you are using.
Can you check the output of ps -ef|grep ORA when you are trying to shutdown the database. There are be many reasons for the shutdown to hang. There can be a large transaction running. At time even when you kill the client side connection the same may continue to run on the server and will be visible from ps -ef|grep ORA.
Try to kill all the transaction which show local=no in the output of ps -ef|grep ORA.
Then see if the database goes down. I am assuming that you are the only person connected to the database and than through internal, or as / in 9i.

There are certain bug also associated with shutdown immediate in oracle so please post the oracle version.

Thanks
Regards