- Este tópico contém 6 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 1 mês atrás por
Ishii.
-
AutorPosts
-
5 de fevereiro de 2011 às 6:06 am #98165
airoosp
ParticipanteBoa noite,
Na minha estação de trabalho tenho o client 8i acessando o banco 9i sem problemas e utilizo o PL/SQL Developer. O mais estranho é que um dos sistemas parou de funcionar após fazer a conexão com o banco.
O que acontece é que após digitar o usuário e senha o sistema começa a carregar e aparece mensagem de erro do Windows.
Inclui no sqlnet.ora da minha estação configuração para gerar o arquivo de trace e descobri que durante a conexão, o arquivo tnsnames.ora não está sendo localizado. A aplicação esta assumindo o protocolo BEQ.Segue abaixo mais informações sobre o problema.
Fatal NI connect error 12560, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oracleORCL)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))’))(CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=C:oracleora90binsqlplus.exe)(HOST=GIS13)(USER=GIS13_USUARIO_2))))VERSION INFORMATION:
TNS for 32-bit Windows: Version 9.0.1.1.0 – Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 9.0.1.1.0 – Production
Time: 16-ABR-2003 10:46:11
Tracing not turned on.
Tns error struct:
nr err code: 0
ns main err code: 12560
TNS-12560: TNS:error del adaptador de protocolo
ns secondary err code: 0
nt main err code: 530
TNS-00530: Error del adaptador de protocolo
nt secondary err code: 126
nt OS err code: 0Um detalhe é que esta aplicação acessa dois bancos em servidores diferentes e para cada acesso o conteúdo do tnsnames é alterado através do bloco de notas.
Por exemplo, o servidor 1 esta no IP 10 e o servidor 2 no IP 15.
No primeiro acesso o arquivo é alterado para IP 10, conexão funciona. Depois alterado para o IP 15 e a conexão apresenta o erro descrito acima.
O mais estranho é que em outras estações o problema também ocorreu com a mesma aplicação quando há troca do IP.
O client foi reinstalado, tnsnames.ora reconfigurado mas o problema continua.
Alguém sabe se há algum arquivo oculto no Windows que pode estar causando o problema?
Obrigado.
Airton
5 de fevereiro de 2011 às 4:03 pm #98166Ishii
ParticipanteOlá,
Como assim a aplicação troca o tnsnames? Se for isso mesmo, essa deve ser a causa de se “perder” tanto a conexão…
Acho melhor entender como a aplicação funciona para trocar o conteúdo do tnsnames e ver se tem outra solução melhor.
[]s Ishii
6 de fevereiro de 2011 às 10:50 pm #98167airoosp
ParticipantePara acessar o banco IP 10 faço a alteração no TNSNAMES.ORA e depois consigo faze a conexão pela aplicação.
O IP 10 corresponde ao ambiente de testes que contém os objetos desta aplicação (tables, procedures, views, trigger, sequences e jobs).
Já o IP 15 corresponde ao ambiente de produção que também contém os objetos acima mas com dados atualizados. Em ambos ambientes o banco é 9i.
O detalhe é que quando altero para o IP 15 no TNSNAMES.ORA e depois acesso a aplicação passando login e senha ocorre o erro descrito na mensagem.
Observando o arquivo de trace gerado através do sqlnet.ora é possível identificar que a aplicação não localiza o arquivo TNSNAMES.ORA e tentar a fazer a conexão com o banco através do protocolo BEQ.
Obrigado.
Airton
7 de fevereiro de 2011 às 7:07 pm #98174Ishii
ParticipanteOlá,
Acho que essas alterações no TNSNAMES.ora com a aplicação rodando está fazendo com que a mesma não encontre a referência novamente, pois o arquivo está sendo editado…
Não sei qual a razão de não se poder ter todas as configurações de acesso no TNSNAMES.ora para os seus dois ambientes, mas acho que isso poderia ser melhorado.
[]s Ishii
7 de fevereiro de 2011 às 9:22 pm #98177airoosp
ParticipanteIshii,
Verificando o trace, a conexão esta sendo feita pelo BEQ-Protocol e não o TCP/IP, qual será o motivo? Como este protocolo funciona?
Ele esta configurado no TNSNAMES.ORA :
.
.
.
BEQ-LOCAL.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = BEQ)(PROGRAM = oracle80)(ARGV0 = oracle80ORCL)(ARGS = ‘(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))’))
(CONNECT_DATA = (SID = ORCL))
)
.
.
.Em uma mesma rede posso ter o mesmo nome de instância no caso ORCL em servidores diferentes, correto? Para definir qual servidor que será utilizado na conexão, escolher o alias definido no tnsnames.ora ou o IP do servidor, correto?
Obrigado.
Airton
7 de fevereiro de 2011 às 9:45 pm #98178airoosp
ParticipanteIshii,
Segue abaixo conteúdo do arquivo trace gerado através do SQLNET.ORA .
— TRACE CONFIGURATION INFORMATION FOLLOWS —
New trace stream is “c:tracearq_trace.trc”
New trace level is 4
— TRACE CONFIGURATION INFORMATION ENDS —
nigini: Count in NI global area now: 1
nigini: Count in NI global area now: 1
nrigbni: Unable to get data from navigation file tnsnav.ora
(2eca) niotns: niotns: setting up interrupt handler…
(2eca) niotns: Not trying to enable dead connection detection.
(2eca) niotns: Calling address: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle80)(ARGV0=oracle80ORCL)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))’)))(CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=z:max.exe)(HOST=CPU58970)(USER=airton))))
(2eca) nric2a: Getting local community information
(2eca) nriglp: Looking for local addresses setup by nrigla
(2eca) nriglp: No addresses in the preferred address list
(2eca) nric2a: TNSNAV.ORA is not present. No local communities entry.
(2eca) nrigla: Getting local address information
(2eca) nrigla: Address list being processed.
(2eca) nrigla: No community information so all addresses are local
(2eca) nridst: Resolving address to use to call destination or next hop
(2eca) nridst: Processing address list.
(2eca) nridst: No community entries so iterate over address list
(2eca) nric2a: This is a local community access
(2eca) nricall: Got routable address information.
(2eca) nricall: Making call with following address information: (DESCRIPTION=(CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=Q:max.exe)(HOST=CPU58970)(USER=airton)))(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle80)(ARGV0=oracle80ORCL)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))’))).
(2eca) nricdt: Calling with outgoing connect data: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle80)(ARGV0=oracle80ORCL)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))’)))(CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=Q:max.exe)(HOST=CPU58970)(USER=airton)))).
(2eca) nscall: connecting…
(2eca) nsopen: opening transport…
(2eca) nserror: nsres: id=0, op=65, ns=12560, ns2=0; nt[0]=530, nt[1]=0, nt[2]=0
(2eca) nsopen: unable to open transport
(2eca) nricdt: Call failed.
(2eca) nricdt: Call made to destination.
(2eca) nricdt: Processing address list so continuing.
(2eca) nric2a: Getting local community information
(2eca) nriglp: Looking for local addresses setup by nrigla
(2eca) nriglp: No addresses in the preferred address list
(2eca) nric2a: TNSNAV.ORA is not present. No local communities entry.
(2eca) nrigla: Getting local address information
(2eca) nrigla: Address list being processed.
(2eca) nrigla: Processed all addresses in address list. Failed to make contact.
(2eca) nricie: Result descriptor: 12203,12560,530,0.
(2eca) nricie: Result descriptor: 12203,12560,530,0 from Interchange:
(2eca) nricall: Exiting NRICALL with following termination result: -1.
(2eca) nioqper: error from nricall
(2eca) nioqper: nr err code: 12203
(2eca) nioqper: ns main err code: 12560
(2eca) nioqper: ns (2) err code: 0
(2eca) nioqper: nt main err code: 530
(2eca) nioqper: nt (2) err code: 0
(2eca) nioqper: nt OS err code: 0
(2eca) niqme: reporting nr (1) error: (12203) as rdbms err (12203)
(2eca) niotns: Couldn’t connect, returning 12203
nigtrm: Count in the NI global area is now 0
nigtrm: Count in the NL global area is now 0Será que é possível ter uma idéia do problema? A conexão via PL/SQL Developer esta funcionando corretamente assim como os demais sistemas.
Obrigado.
Airton
7 de fevereiro de 2011 às 11:57 pm #98179Ishii
ParticipanteOlá,
First thing first…. Quando vc altera o TNSNAMES.ora o SO perde a referência pois o arquivo foi alterado, como rWindows é quase um sistema inteligente ele tenta o protocolo BEQ que é (ou era) nativo Windows e ai tenta resolver pelo nome do Host. Respondendo a um outro post seu, o TNSNAV.ora era um outro arquivo de configuração dos endereços do Server (que eu me lembre era do Oracle 7) e ainda está no search list, ou seja, quando ele não encontra o TNSNAMES.ora tenta o TNSNAV.ora ou vice versa não sei ao certo afinal o TNSNAV.ora era da época do protocolo IPX muito utilizado pela Novell.
Note que o trace informa o erra 12203 que corresponde ao ORA-12203
TNS:unable to connect to destination
Cause: Invalid address specified or destination is not listening. This error can also occur because of underlying network or network transport problems.
Action: Verify that the net service name you entered was correct. Verify that the ADDRESS portion of the connect descriptor which corresponds to the net service name is correct. Ensure that the destination process (for example the listener) is running at the remote node.Sugestão:
1) Se possível altere o programa para utilizar o TNSNAMES sem alterações e configure o mesmo para que atenda as conexões necessárias; e
2) Se possível também, atualize o client do Oracle…. 🙂[]s Ishii
-
AutorPosts
- Você deve fazer login para responder a este tópico.