Chiappa,

Obrigado pelas dicas, já estamos analisando ponto a ponto.

 

Mas tudo indica ser algo relacionado a rede/firewall, e não banco mesmo.

 

Grato,

 

Ednilson 

 

De: 
sentto-1682896-122077-1506699714-ednilson.silva=jbs.com...@returns.groups.yahoo.com
 
[mailto:sentto-1682896-122077-1506699714-ednilson.silva=jbs.com...@returns.groups.yahoo.com]
 Em nome de jlchia...@yahoo.com.br [oracle_br]
Enviada em: sexta-feira, 29 de setembro de 2017 12:42
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Fatal NI connect error 12170.

 

  

Blz ? Então : a msg "Fatal NI connect error 12170" simplesmente é um Anúncio de 
que ocorreu um erro de Rede, e o erro mais tarde indicado foi "TNS-12535: 
TNS:operation timed out", ou seja : CLARAMENTE a conexão de rede deixa de 
responder, seja porque foi ELIMINADA, seja porque a rede está sobrecarregada e 
não consegue atender a demanda a tempo... Isso tá Claro até aqui, né ?
 O outro ponto é que, ** AO CONTRÁRIO ** do que muita gente pode pensar, o 
RDBMS Oracle ABSOLUTA e COMPLETAMENTE NÃO CONTROLA A REDE, ok ?? Ele e apenas e 
tão somente um CONSUMIDOR dos serviços de Rede providenciados pelo Sistema 
Operacional e pelo software+hardware de rede , okdoc ?? Isso leva á necessidade 
de que vc, como DBA, necessariamente ENVOLVA O ADMINISTRADOR DE REDE e o 
ADMINISTRADOR DO SO, sim sim ?? Sem isso, vc Não Vai Conseguir fazer muito, 
como DBA, atuando sozinho... Tá legal ?? INCLUSIVE : uma pista Inestimável que 
vc, como DBA, pode (e DEVE!!) fornecer pro sysadmin e pro admin de rede é um 
TRACE DE REDE : isso pode ser feito tanto no servidor Oracle quanto nas 
máquinas clientes que conectam no database, além da Documentação uma ref pode 
ser http://www.juliandyke.com/Diagnostics/Trace/NetTrace.php , Não Esquecendo 
que no 11gR2 pra isso funcionar normalmente vc tem que desativar o ADG, veja 
https://www.pythian.com/blog/oracle-net-trace-in-11g-or-build-in-itil/ ...
 
 Muito bem, agora vem a sua resposta : realmente, enquanto DBA tua primeira 
Atuação é tentar se assegurar que não é o Banco que está matando as conexões : 
para isso, não basta só dizer que o profile DEFAULT é o que está em uso, vc TEM 
que confirmar que o profile em si não foi alterado, fazendo uma consulta select 
* from dba_profiles; e CONFIRMANDO que NENHUM resource que tenha a ver com 
tempo de conexão foi alterado/limitado artificialmente (ie, nem 
SESSIONS_PER_USER nem IDLE_TIME nem CONNECT_TIME nem nada)... Outra coisa é se 
ASSEGURAR que não há JOBs de banco ou coisa assim que dispare e regularmente 
saia matando conexões...
 
 Uma vez Confirmado que o BANCO em si não está matando conexões, aí vc vai ter 
que (** junto ** com o admin de rede, o sysadmin E o analista-chefe da 
Aplicação!!) olhar para FORA do database.... Por exemplo, há um POOL DE 
CONEXÕES nessa tal aplicação  ? Se sim, o controle de quando uma conexão de 
rede é feita para atender a uma sessão basicamente reside nesse software de 
connection pooling, é LÁ que vc vai eventualmente setar timeouts e controles, o 
banco Oracle não apita NADA VEZES NADA nesse cenário.... Um teste EXCELENTE pra 
vc debugar issues de pool de conexão é estabelecer (da mesma máquina onde roda 
a aplicação E onde está o client Oracle) uma sessão DEDICADA via sqlplus e ver 
se ela também sofre algum tipo de timeout... INCLUSIVE, um teste que vc pode 
facilmente fazer para checar se é TIMEOUT o problema é ativar o DCD (Dead 
Connection Detection), que é uma feature do Oracle que faz o sql*net enviar a 
cada x segundos (vc configura) um pacotinho de dados pela rede, de forma a que 
o firewall, o pool de conexão ou seja quem for não "pense" que a conexão está 
inativa : veja a nota metalink número 151972.1 "Dead Connection Detection (DCD) 
Explained" e os links dela...
 
 
 Outra situação EXTERNA ao database mas comum por demais é um FIREWALL, seja no 
servidor Oracle, seja no servidor da aplicação, seja na máquina-cliente.... 
Isso é tão comum que uma das notas metalink/my oracle support  dedicadas à 
troubleshoot da situação, que é a nota "Alert Log Errors: 12170 
TNS-12535/TNS-00505: Operation Timed Out" (Doc ID 1628949.1) indica de cara 
isso como uma possibilidade.... Inclusive, vc tem que entender que em ambiente 
Windows a conexão inicial se estabelece na porta mesmo do Listener (a porta 
1521, normalmente) mas Depois 'migra' para uma porta aleatória, então essa 
linha :
 
  Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.242.120.61)(PORT=57282))

 pode muito bem estar indicando justamente isso, ie, algum tipo de 
firewall/antivírus/controlador de rede fechando essa porta de rede, que pelo 
número alto e bem diferente do range de portas comuns no listener  imho é Sim 
uma das portas 'aleatórias' do lado do cliente... 
  Veja a possibilidade de liberação de ranges no firewall MAS atente ao detalhe 
que, como vc diz que a conexão inicialmente se estabelece *** MAS ** algum 
tempo depois é que dá o 'erro', parece ser não um caso de porta de rede 
proibida/permanentemente fechada mas sim de keepalive, ie, portas que não 
respondem/não ficam ativas num intervalo X aí sim tem suas conexões 
fechadas/encerradas/matadas... Dá um look nas notas metalink "Resolving 
Problems with Connection Idle Timeout With Firewall" (Doc ID 257650.1) e a 
"Resolving Problems with Connection Idle Timeout With Firewall" (Doc ID 
257650.1) para refs sobre keepalive no firewall E na "Solving Firewall Problems 
on Windows" (Doc ID 68652.1) para algumas idéias sobre port sharing em 
firewalls...
  ===>>> REPITO, porém : tudo isso vc vai fazer EM CONJUNTO COM O ADMIN DE 
REDE, sim sim sim ??? É ELE que pode te dizer QUAIS firewalls estão em ação (de 
repente vc pode ter firewall TANTO no servidor Oracle QUANTO nas 
máquinas-clientes, no servidor da aplicação e/ou no próprio hardware de rede), 
é ELE que pode consultar NOS FIREWALLS como estão setados keepalives e exclusão 
de portas..... É EXTERNO AO DATABASE, yes ??
  
 A outra parte da minha resposta é : antes de  vc sair setando parâmetros de 
tempo de resposta de rede (seja no listener como vc disse, seja no sql*net), vc 
 Deveria fazer isso apenas uma vez que vc tenha PROVADO e COMPROVADO que não é 
caso da rede sobrecarregada estar demorando demais a responder, sim sim ?? 
 
 Refs pra isso são (além da Documentação!!) as notas "Oracle Net 
SQLNET.SEND_TIMEOUT and SQLNET.RECV_TIMEOUT Parameters and errors ORA-12170 
TNS-12535 ORA-12609 ORA-12608" (Doc ID 1335630.1) e os links da própria nota 
master sobre a issue, a     "OERR: ORA-12170 / TNS-12170 'TNS:Connect timeout 
occurred' Reference Note" (Doc ID 194295.1) ...

 
 []s
 
   Chiappa
   
OBS : 

 1. obviamente, prestar atenção TOTAL à Edição dos arqs de 
parâmetros/sqlnet.ora, pois um eventual caracter de controle inválido ou um 
erro de sintaxe pode levar à erros tal como mostrado na nota "SQLNET.ORA File 
Improperly Formatted Cause an ORA-12699 Error" (Doc ID 2288262.1) ...
 
 2. friso NOVAMENTE que a maneira PROFISSIONAL de resolver issues do tipo é ** 
Analisar ** antes de sair "atirando pra todo lado", mexendo params a torto e a 
direito : vc até pode acertar o alvo mas é mais comum que vc acerte o olho de 
alguém....
  
 3. dependendo do caso vc pode necessitar restatar o listener ou até (num caso 
extremos) o banco também, vide nota metalink "When do SQLNET.ORA changes take 
effect ?" (Doc ID 562589.1) ...



  • [oracle_br] Fatal N... 'Ednilson Silva' ednilson.si...@jbs.com.br [oracle_br]
    • [oracle_br] Re... jlchia...@yahoo.com.br [oracle_br]
      • RES: [orac... 'Ednilson Silva' ednilson.si...@jbs.com.br [oracle_br]
    • Re: [oracle_br... angelo angelolis...@gmail.com [oracle_br]
      • Re: [oracl... Luis Freitas lfreita...@yahoo.com [oracle_br]
        • RES: [... 'Ednilson Silva' ednilson.si...@jbs.com.br [oracle_br]
        • RES: [... 'Ednilson Silva' ednilson.si...@jbs.com.br [oracle_br]
          • Re... jlchia...@yahoo.com.br [oracle_br]

Responder a