Eu apoio um servidor web IIS 7.5 e estou tendo alguns problemas com meus pools de aplicativos. O que estou vendo é que, de vez em quando, os aplicativos que usam conexões com bancos de dados Oracle param de funcionar e geram um erro "ORA-12154: TNS: não foi possível resolver o identificador de conexão especificado". O que é enlouquecedor é que nada mudou no servidor de banco de dados, no servidor web ou dentro do aplicativo. Eu tentei um TNS Ping no banco de dados e ele se conecta perfeitamente. Os aplicativos no mesmo pool de aplicativos que usam bancos de dados SQL Server não parecem ter problemas.
IMPORTANTE: se eu alterar o aplicativo para pertencer a um pool de aplicativos diferente, ele começará a funcionar novamente. Se eu voltar ao pool de aplicativos original, o erro persistirá.
O que poderia estar acontecendo aqui? Não sei por que o problema surgiu do nada e afetou apenas alguns pools.
Obrigado!
Responder1
Tente executar ping no seu ouvinte TNS para ver se acontece algo assim no Linux:
tnsping oracle
...
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oracle)))
...
OK (2311770 msec)
Se estiver ativo, mas você não consegue obter o status do ouvinte TNS assim:
lsnrctl status
TNS-01153: Failed to process string: �9M0
Tente forçar o ouvinte a atualizar sem erros com o seguinte comando (novamente, este é o linux, procure um comando equivalente do Windows Server):
lsnrctl start oracle
TNS-01106: Listener using listener name LISTENER has already been started
Pode estar relacionado com hardware/e/ou/ajuste ruim do Oracle/e/ou/má configuração do Oracle. Eu tenho exatamente o mesmo erro que você, exceto que estou executando o Apache-Tomcat como um servidor web, e imediatamente após iniciar o servidor web meu serviço oracle para (erro TNS:listener e no meu webapp vejo a exceção Socket Time Out) não é como se você tivesse a chance de realmente executar seus aplicativos por um tempo antes que o serviço TNS pare, acho que é a parte do sistema operacional.
Estou usando uma máquina virtual, VM Fusion com CentOS 6.6 instalado, esta VM funciona bem em apenas 1 de 3 laptops diferentes, posso confirmar que pode estar relacionado à memória RAM, como fica a RAM do seu servidor quando isso acontece? Eu aumentei isso várias vezes e ele corrigiu o problema, mas depois voltou e a única maneira de se livrar dele era monitorar a RAM e limpá-la automaticamente quando atingir o máximo e forçar a execução com:
lsnrctl start oracle