Pular para o conteúdo
  • Este tópico contém 14 respostas, 5 vozes e foi atualizado pela última vez 14 anos, 2 meses atrás por Victor Armbrust.
Visualizando 15 posts - 1 até 15 (de 15 do total)
  • Autor
    Posts
  • #100956
    msantino
    Participante

      Fala 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?

      #100964
      felipeg
      Participante

        Opa,

        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.

        #100965
        msantino
        Participante

          Felipeg,

          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

          #100966
          felipeg
          Participante

            Opa,

            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.

            #100967
            msantino
            Participante

              Ve 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?

              #100968
              felipeg
              Participante

                Esse 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.

                #100969
                msantino
                Participante

                  Ih 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))
                  )
                  )

                  #100970
                  felipeg
                  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#37907

                    3 – Analisar o sistema e verificar se ha algum processo tentando utilizar a porta 1521.

                    Atenciosamente,
                    Felipe.

                    #100971
                    msantino
                    Participante

                      Pois é 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?

                      #100973
                      Victor 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…

                        #100975
                        msantino
                        Participante

                          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?

                          #100976
                          Victor 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)

                            #100978
                            Ishii
                            Participante

                              Olá,

                              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

                              #100979
                              rman
                              Participante

                                Descontração MODE ON


                                ORA-12542: TNS:address already in use

                                Causa: Microsoft Windows 2003

                                Ação: Instalar Red Hat Enterprise Edition

                                Descontração MODE OFF

                                @Ishii

                                Informação interessante. É bom saber…

                                #100980
                                Victor Armbrust
                                Mestre

                                  [quote=”rman”:opbqpjjw]Descontração MODE ON


                                  ORA-12542: TNS:address already in use

                                  Causa: Microsoft Windows 2003

                                  Ação: Instalar Red Hat Enterprise Edition

                                  Descontração MODE OFF

                                  @Ishii

                                  Informação interessante. É bom saber…[/quote]

                                  kkkkkkkkkkkkkk boa….

                                Visualizando 15 posts - 1 até 15 (de 15 do total)
                                • Você deve fazer login para responder a este tópico.