- Este tópico contém 14 respostas, 5 vozes e foi atualizado pela última vez 14 anos, 2 meses atrás por
Victor Armbrust.
-
AutorPosts
-
23 de setembro de 2011 às 9:47 pm #100956
msantino
ParticipanteFala pessoal, blz?
Temos um Oracle 11g rodando em Windows 2003 com 2 servidores de aplicação (também windows 2003/IIS) acessando essa base.
De uns tempos pra cá temos recebido diversos erros “ORA-12542: TNS:address already in use“, só que não conseguimos identificar o real motivo. O listener está funcionando, aceitando conexões com o SID informado na aplicação e não são 100% das conexões da aplicação que dão erro, são alguns momentos, possivelmente quando ocorre um pico de transações.
Será que existe alguma configuração a nível de Listener para limitar a quantidade de conexões possíveis simultaneamente, mesmo estando configurado como DEDICATED?
Buscando no google encontrei esse link http://www.dba-oracle.com/t_ora_12542_tns_address_already_in_use.htm que indica 2 possíveis alterações no registro do Windows pra aumentar o limite de conexões e para diminuir o timeout das conexões idle, porém fizemos e não mudou em nada o comportamento do erro.
Alguém já viu esse tipo de erro? Consegue ajudar?
23 de setembro de 2011 às 10:36 pm #100964felipeg
ParticipanteOpa,
Da uma lida nesse artigo, vê se te ajuda:
Qualquer coisa se ainda não funcionar posta ai que verificamos!http://www.ora00600.com/scripts/sqlnet/ORA-12154.html
Atenciosamente,
Felipe.23 de setembro de 2011 às 10:45 pm #100965msantino
ParticipanteFelipeg,
Não entendi exatamente o objetivo desse link que você mandou. Eu consigo acessar a instância normalmente pelos 2 servidores de aplicação. Tanto por SQLPLUS, TNSPING, TELNET/1521 e a própria aplicação consegue se conectar e funciona. Apenas em determinados momentos ela apresenta esse erro pra algumas requisições.
Valeu pelo link mas acho que não se aplicou ao meu caso. No final ele até menciona o erro TNS-12542: TNS:address already in use em um link, mas o link aponta para a mesma página.
Abs
23 de setembro de 2011 às 10:58 pm #100966felipeg
ParticipanteOpa,
Falha minha.
Posta aqui pra gente o seu LISTENER.ora por gentileza.Lembrando que algum outro serviço pode estar tentando subir intermitente usando a mesma porta, afinal portas acima de 1024 podem ser alocadas randomicamente pelo sistema para se conectar a outros locais.
Uma opção seria trocar a porta e testar ou ficar analisando o uso com o comando netstat -n -b -a
Atenciosamente,
Felipe.23 de setembro de 2011 às 11:02 pm #100967msantino
ParticipanteVe ai:
MEUSID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXX.XXX.XXX.XX)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MEUSID)
)
)
As informações do SID e o IP foram substituídas pois é ambiente de produção e não posso divulgá-los, blz?
23 de setembro de 2011 às 11:09 pm #100968felipeg
ParticipanteEsse ai é do TNSNAMES amigo:
O LISTENER tem algo assim
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:oracleproduct10.2.0db_1)
(PROGRAM = extproc)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vm-oracle)(PORT = 1521))
)
)E da uma olhada na edit que eu fiz do post antetior.
Atenciosamente,
Felipe.23 de setembro de 2011 às 11:12 pm #100969msantino
ParticipanteIh cara, viagei, foi mal! kkkkkk
Dá uma olhada:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = MEUSID)
(ORACLE_HOME = C:oracleproduct11.2.0dbhome_1)
(PROGRAM = extproc)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME_DO_SERVIDOR)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)23 de setembro de 2011 às 11:23 pm #100970felipeg
ParticipanteÉ, nada de estranho
Como eu disse esse erro é bem chato e requer um trabalho de investigação, geralmente o Oracle nem culpado é.
Você tem três opções
1 – Tentar alterar a porta do Listener.
2 – Utilizar IPC
http://download.oracle.com/docs/html/B1 … .htm#379073 – Analisar o sistema e verificar se ha algum processo tentando utilizar a porta 1521.
Atenciosamente,
Felipe.23 de setembro de 2011 às 11:37 pm #100971msantino
ParticipantePois é cara, tá bem estranho isso e difícil de identificar o motivo do problema.
Podemos até alterar a porta do listener, mas acho que não fará muita diferença pois o único serviço rodando nela é o oracle mesmo.
Sobre verificar se existe outro serviço tentando utilizar a porta, acredito realmente que não, pois é um servidor dedicado a essa base e além da instância existem apenas as ferramentas da Oracle (Enterprise Manager, etc) e todos com configurações padrão.
Quem recebe esse erro é a própria aplicação que de forma geral consegue conectar normalmente. É uma operação 24×7 e só em determinados momento do dia ocorrem esses erros que capturamos no log dela… Acreditamos até que seja quando atinja um pico de atividade que aconteça isso, mas não conseguimos confirmar essa evidência.
Sobre usar esse protocolo IPC, no client eu precisaria alterar apenas em termos de tnsnames, certo?
24 de setembro de 2011 às 12:05 am #100973Victor Armbrust
Mestre@msantino
Cara, pesquisei no metalink mas não achei algo específico para o 11g.
O que encontrei é algo como troubleshooting:ORA-12542 occurs when the port specified in the listener.ora file is already in use by another process.
Typically another listener process is already running. Check netstat -an |grep on .Acredito que uma maneira de fazer um troubleshooting seria:
– Validar se existem outros processos que usam a porta do listener (no seu caso 1521);
– Verificar se existem processos “travados” do listener no windows;
– Como é feito o START do seu LISTENER? VIa serviço ou via linha de comando ? (lsnrctl start)Vou continuar pesquisando aqui…
24 de setembro de 2011 às 12:18 am #100975msantino
Participantevarmbrust, valeu pela resposta!
Mas então, como eu disse, não tem outro processo ocupando esta porta. Se tivesse teríamos 100% de erros nesse momento mas somente algumas conexões não são realizadas. Capturamos apenas alguns eventos em determinados horários.
O Listener é startado via serviço do windows. Será que é válido parar o do serviço e iniciar manualmente?
24 de setembro de 2011 às 1:52 am #100976Victor Armbrust
Mestre[quote=”msantino”:ivf3b85k]varmbrust, valeu pela resposta!
Mas então, como eu disse, não tem outro processo ocupando esta porta. Se tivesse teríamos 100% de erros nesse momento mas somente algumas conexões não são realizadas. Capturamos apenas alguns eventos em determinados horários.
O Listener é startado via serviço do windows. Será que é válido parar o do serviço e iniciar manualmente?[/quote]
Acho que vale a pena tentar sim, e também dar uma olhada no listener.log para tentar encontrar algo, de repente até tentar ativar o Trace Leve como ADMIN. Caso tenha dúvida: (http://download.oracle.com/docs/cd/E11882_01/network.112/e10835/lsnrctl.htm#CIHECEBF)
24 de setembro de 2011 às 4:08 am #100978Ishii
ParticipanteOlá,
No Windows, o Oracle utiliza na verdade a porta 1521 para iniciar a conexão mas depois de conectado utiliza um valor diferente para manter essa conexão. Provavelmente esse range de portas é baixo e nesse caso ocorre esse tipo de erro. Não me lembro mais onde no registro do Windows você pode aumentar esse range de portas (acho que é HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTcpip mas não tenho certeza de quais sãos os valores das chaves) melhor ver a documentação do Windows 2008. Feito isso acho que o erro não deve ocorrer mais.
[]s Ishii
24 de setembro de 2011 às 5:38 am #100979rman
ParticipanteDescontração MODE ON
ORA-12542: TNS:address already in useCausa: Microsoft Windows 2003
Ação: Instalar Red Hat Enterprise Edition
Descontração MODE OFF
@Ishii
Informação interessante. É bom saber…
24 de setembro de 2011 às 6:41 am #100980Victor Armbrust
Mestre[quote=”rman”:opbqpjjw]Descontração MODE ON
ORA-12542: TNS:address already in useCausa: Microsoft Windows 2003
Ação: Instalar Red Hat Enterprise Edition
Descontração MODE OFF
@Ishii
Informação interessante. É bom saber…[/quote]
kkkkkkkkkkkkkk boa….
-
AutorPosts
- Você deve fazer login para responder a este tópico.