PROBLEM:

The application is unable to connect to the database after it was idle for a long time.
Error ORA-02396: exceeded maximum idle time, please connect again was logged in the application log.

SOLUTION:

First, you need to identify, with which user, the application is connecting to the database. Let’s say the user is SIEBEL.

Now find the value of the IDLE_TIME resource limit set in the profile of that user(SIEBEL)

select a.username,b.profile,b.RESOURCE_NAME,b.LIMIT from dba_users a, dba_profiles b where 
 b.resource_name='IDLE_TIME' and a.profile=b.profile and a.username='&USERNAME';

USERNAME      PROFILE        RESOURCE_NAME                    LIMIT
------------- -------------- -------------------------------- --------------
SIEBEL        DEFAULT        IDLE_TIME                        128000

Here the idle_time is set to 12800 minutes. So if the session is idle for this much time, then it will be disconnected with the error,
Error ORA-02396: exceeded maximum idle time, please connect again was logged in the application log.

To fix this, alter the profile with the IDLE_TIME set to a higher value or UNLIMITED.

ALTER PROFILE DEFAULT LIMIT IDLE_TIME UNLIMITED;

select a.username,b.profile,b.RESOURCE_NAME,b.LIMIT from dba_users a, dba_profiles b where
b.resource_name='IDLE_TIME' and a.profile=b.profile and a.username='&USERNAME';

USERNAME PROFILE RESOURCE_NAME LIMIT
------------- -------------- -------------------------------- --------------
SIEBEL DEFAULT IDLE_TIME UNLIMITED