Ao verificarmos o arquivo alert.log do banco de dados, nos deparamos com uma seqüência contínua do erro "Fatal NI connect error 12537", conforme descrito abaixo:
$ tail -5000 alert.log
Fatal NI connect error 12537, connecting to:
(description=(address=(protocol=tcp)(host=xxx.xxx.xx.xxx)(port=1555))(connect_data=(server=dedicated)(sid=banco)(CID=(PROGRAM=oracle)(HOST=DB_XPTO)(USER=oracle))))
VERSION INFORMATION:
TNS for IBM/AIX RISC System/6000: Version 12.1.0.2.0 - Production
TCP/IP NT Protocol Adapter for IBM/AIX RISC System/6000: Version 12.1.0.2.0 - Production
Oracle Bequeath NT Protocol Adapter for IBM/AIX RISC System/6000: Version 12.1.0.2.0 - Production
Time: 7-SEP-2016 13:23:41
Tracing not turned on.
Tns error struct:
ns main err code: 12537
TNS-12537: TNS:connection closed
ns secondary err code: 12560
nt main err code: 507
TNS-00507: Connection closed
nt secondary err code: 0
nt OS err code: 0
Essa mensagem de erro tem, na maioria das vezes, relação com alguma alteração feita no firewall da rede e devido a isto, começam a aparecer essas mensagens no arquivo de log do banco de dados.
Após pesquisas feitas na internet, no site da Oracle (MOS) e a abertura de um chamado no próprio fornecedor (ORACLE), conseguimos eliminar essas mensagens de erro do arquivo alert.log com a inclusão dos parâmetros informados a seguir:
1) Arquivo sqlnet.ora
No arquivo sqlnet.ora, que fica em $ORACLE_HOME/network/admin, devemos adicionar o parâmetro:
DIAG_ADR_ENABLED = OFF
2) Arquivo listener.ora
No arquivo listener.ora, que fica em $ORACLE_HOME/network/admin, devemos adicionar o parâmetro:
DIAG_ADR_ENABLED_LISTENER = OFF
3) Reiniciar listener
Após a configuração é necessário reiniciar o listener do banco de dados.
Observação:
Se tivermos mais de um listerner configurado para o nosso banco de dados, devemos incluir no arquivo listener.ora uma entrada para cada listener.
Abaixo segue um exemplo de um ambiente com 3 listeners configurados.
$ ps -ef | grep lsnr
grid 9044142 1 0 12:06:52 - 0:00 /u01/app/12.1.0.2/grid/bin/tnslsnr LISTENER
grid 15400964 1 0 09:32:56 - 0:00 /u01/app/12.1.0.2/grid/bin/tnslsnr LISTENER_SCAN1
grid 20578432 1 0 09:33:10 - 0:00 /u01/app/12.1.0.2/grid/bin/tnslsnr LISTENER_SCAN2
Para esse ambiente, no arquivo listener.ora deveremos ter 3 entradas para a configuração que eliminará a mensagem de erro do arquivo alert.log, como demonstrado abaixo:
DIAG_ADR_ENABLED_LISTENER = OFF
DIAG_ADR_ENABLED_LISTENER_SCAN1 = OFF
DIAG_ADR_ENABLED_LISTENER_SCAN2 = OFF