Having been thrust into the role of reluctant DBA, I recently migrated a database. It all went pretty smoothly until I needed to enable dead connection detection to act as a keepalive.
All you need do is add SQLNET.EXPIRE_TIME = x (in minutes) to you sqlnet.ora
Despite everything I read to the contrary, this did not work for me until I bounced both the database and the listener. Just posting this here in the hope I may save someone else some annoyance.