-904 is a generic 'resource unavailable' with many different sub-conditions (not necessarily relating to locking), more common when the database lives on a Z/OS platform. The only time I've seen this on a unix/linux/windoze environment is when using db2-connect to a Z/OS based database, and usually the reason-codes did not relate to locking.
-911 involves an implicit rollback (of statement or transaction, depending on version+configuration) following either a deadlock or locktimeout.
Typically when a -904 has to do with locks its that you have too many. I have seen it mostly on Z/OS as mor suggested already. You can have too many locks per table and per session. Also, as Mor suggested there are many many reasons for a -904, you have to refer to the reason code within the SQLCA to determine the exact reasoning.
You left off that you can get a -913 for locking as well.