In Oracle 19c, the classic Dead Connection Detection (DCD) mechanism, configured via expire_time in sqlnet.ora , remains the most reliable way to solve this.
lsnrctl reload Or for a clean start:
Check your 19c database servers:
One of the most frustrating issues for any DBA or application owner is the dreaded "hung session" — a database connection that appears active but is actually dead due to a network failure, firewall timeout, or client crash.
expire_time = 15 SQLNET.INBOUND_CONNECT_TIMEOUT = 60 SQLNET.RECV_TIMEOUT = 60 SQLNET.SEND_TIMEOUT = 60 Combine expire_time with inbound timeouts to protect against both idle zombies and hung network I/O. expire_time in Oracle 19c is a small parameter with a massive impact on stability. It requires no application changes, adds minimal overhead (one tiny packet every N minutes), and prevents orphaned sessions from ruining your database health. expire_time sqlnet.ora 19c
grep expire_time $ORACLE_HOME/network/admin/sqlnet.ora If it returns nothing, add expire_time = 10 and sleep better tonight. Have you seen unexpected session cleanup due to network latency? Or do you combine expire_time with DCD on the listener? Share your experience below!
To be safe:
lsnrctl stop lsnrctl start Check an active session’s DCD setting: