Oracle Client sessions keep disconnecting
Check if sqlnet_expire_time is set in any of the sqlnet.ora files on the machine that hosts the DB, using some variant of

find / -name sqlnet.ora -exec grep -i sqlnet_expire_time {} \;


If it's not set in any of them then you can quickly rule out dead connection detection.  If it is set then you have DCD enabled and it's likely that which is killing your connections.

You are using three apps - my bet is that you're in one of them for more than the DCD time, so the other apps' connections are being killed, then when you switch to another app you find its connection has gone.  This is because they each have their own connection, and it doesn't matter how busy connection A is - if connection B is idle for the DCD time it will be killed.

If DCD is ruled out then the next place to check will be the firewall.  This needs to be SQL*Net aware; it's not just port 1521 (or whatever you've configured) that needs to be open, but the firewall needs to check the comms for the random port number the server returns to the client and open that as well - if it doesn't do that then the firewall will kill the "unauthorised/unknown" link, thus breaking the connection.