We might observe the below issue when starting the ICM.

Routine &ROUTINE has attempted to start the internal concurrent manager.  The ICM is already running.  Contact you system administrator for further assistance.afpdlrq received an unsuccessful result from PL/SQL procedure or function FND_DCP.Request_Session_Lock.
Routine FND_DCP.REQUEST_SESSION_LOCK received a result code of 1 from the call to DBMS_LOCK.Request.
Possible DBMS_LOCK.Request resultCall to establish_icm failed
The Internal Concurrent Manager has encountered an error.


Symptoms:

If we check adcmctl.sh status it will show Active but no FNDLIBR process seen on the server.


Reason:

This must be due to a blocking session in the database.

We need to clear the Database session.

1. Run sql to check for blocking session :

SQL> SELECT v$access.sid, v$session.serial#
FROM v$session,v$access
WHERE v$access.sid = v$session.sid and v$access.object = 'FND_CP_FNDSM'
GROUP BY v$access.sid, v$session.serial#;  

       SID    SERIAL#
---------- ----------
       523         17

SQL>

2. Kill blocking session :

SQL> alter system kill session '523,17';

System altered.

Start the Concurrent Managers and Re-try.