Qual é o erro que você recebe ao tentar usar a conexão?
O Oracle por padrão não fechará uma conexão devido à inatividade. Você pode configurar um perfil com um IDLE_TIME para fazer com que o Oracle feche conexões inativas, mas não parece que você fez isso. Você também pode configurar o Oracle para detectar conexões inativas e fechar a conexão se o cliente não responder-- se o cliente estiver enterrado por três horas, é possível que ele não esteja respondendo em tempo hábil. Mas isso parece menos provável que o anúncio exija etapas de configuração adicionais.
A situação mais provável na minha experiência é que sua rede está perdendo a conexão. Se você estiver se conectando por meio de um firewall, por exemplo, o firewall frequentemente fechará conexões que ficaram ociosas por muito tempo.
A mensagem de erro real do Oracle que você está recebendo indicará qual dessas alternativas está causando o problema.