Bug – DCD (Dead Client Detection) doesn’t work as expected
For quite some time we observed dead client connections on some of our production servers (in all cases: 32-bit Oracle10g 10.2.0.2, Windows 2003 SP1). We turned dead client detection ON by setting up SQLNET.EXPIRE_TIME in sqlnet.ora on the server side, trying different values (5, 10, 15 minutes). Despite of that, we noticed that DCD doesn’t work for no apparent reason. We confirmed that by tracing the session according to Metalink Note 1019019.102 “How to Check if Dead Connection Detection (DCD) is Enabled”. It was during this search on Metalink that we found out about Bug #5573896 “DCD IS NOT WORKING IF SET MORE THAN 1 MINUTE”. After setting SQLNET.EXPIRE_TIME=1 the problem with dead client connections disappeared – well, better said the problem was not as severe, as before we changed EXPIRE_TIME to 1 minute. Occasionally, we still find dead connections that Oracle doesn’t recognize as dead connections. According to Metalink note it’s a platform specific bug – it’s not known yet when’ll be fixed.
So far we found out that:
– this is the problem with Oracle 10.2.0.2/10.2.0.3 on Windows 2003 / XP
– we could not reproduce the problem running Oracle 10.2.0.2 on Windows 2000 (SP4)
– it doesn’t seems to affect Windows 2003 EMT64*
[Comment added, 2 November, 2007]
* Actually, it does affect Windows 2003 EMT64 as well. Last week we put in production Oracle 10.2.0.3 (+Patch 12) on 64-bit Windows 2003 EE with SP2. After a week in a production we noticed dead client connections as described above.