Pular para o conteúdo
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #84070
    sp66d_rac6r
    Participante

      Informações do Ambiente:
      * Versão do Oracle: Oracle9i Enterprise Edition Release 9.2.0.4.0 – 64bit Production
      * Sistema Operacional: Unix

      Pessoal pesquisando sobre este erro, cheguei a algumas causas: queda de conexão ou do banco.

      Isto procede?

      Falta algum tratamento na aplicação?

      Ou configuração no banco?

      Agradeço desde já.

      #84076
      Ishii
      Participante

        Olá,

        A aplicação é distribuída? Tipo grava os dados em bancos distribuídos? Se for isso pode ser que o problema esteja na aplicação mesmo…

        []s Ishii

        #84079
        sp66d_rac6r
        Participante

          [quote=”Ishii”:3txqmror]Olá,

          A aplicação é distribuída? Tipo grava os dados em bancos distribuídos? Se for isso pode ser que o problema esteja na aplicação mesmo…

          []s Ishii[/quote]

          Trata-se de uma rotina de limpeza. Exclui os dados de tabelas de 2 owners.

          Vou levantar esta informação.

          Pq, o que vc acha que está acontecendo?

          #84085
          vieri
          Participante

            Este tipo de erro ocorre um função de queda na reda
            , ou algum tipo de aborto na transação ficando
            a mesma pendente no database com maior
            commit_point_strength, que é a instância que irá coordenar
            a transação distribuida, atrávés do protocolo de Two phase commit.

            How to criado por mim, pois de tempos em tempos ocorre isso aqui
            na empresa não havendo oque ser feito até aonde eu sei.
            A não ser que inclua isso no código do aplicativo.

            Rode a seguinte consulta para visualizar as transações distribuidas que estão
            pendentes

            SQL> alter session set nls_date_format = ‘dd/mm hh24:mi:ss’ ;

            Session altered.

            SQL> select LOCAL_TRAN_ID , STATE , RETRY_TIME from dba_2PC_pending ;

            LOCAL_TRAN_ID STATE RETRY_TIME


            109.15.517 forced rollback 16/11 17:53:54
            33.34.15417 forced commit 16/11 17:53:54
            36.4.17795 forced commit 16/11 17:53:54
            25.42.44364 forced commit 16/11 17:53:54
            13.22.17089 forced rollback 16/11 17:53:54
            33.47.18888 forced rollback 16/11 17:53:54
            16.5.30254 forced rollback 16/11 17:53:54
            35.38.16813 forced rollback 16/11 17:53:54
            51.43.21516 forced rollback 16/11 17:53:54
            9.13.189683 forced rollback 16/11 17:53:54
            18.1.25660 pending 16/11 17:53:54

            Em comunicação com a equipe de desenvolvimento,
            ou caso você seja da equipe, verifique qual foi o horário que começou a
            ocorrer problemas.

            De posse do horário , utilize o script dinâmico abaixo no sqlplus, para gerar os
            comandos de
            rollback
            das transações. Execute manualmente ou rode por spool .

            ex:

            set pagesize0
            SQL> select ‘rollback force ”’||local_tran_id|| ”” ||’ ;’ from dba_2pc_pending
            where retry_time > ’16/11 17:53:54′ ;

            rollback force ‘82.17.24076’ ;
            rollback force ‘4.21.386247’ ;
            rollback force ‘22.0.318538’ ;
            rollback force ‘23.1.441929’ ;
            rollback force ‘24.1.388673’ ;
            rollback force ‘26.3.224605’ ;
            rollback force ‘28.29.173961’ ;
            rollback force ‘59.19.124545’ ;
            rollback force ‘60.2.125958’ ;
            rollback force ‘63.9.205451’ ;
            rollback force ‘92.33.71617’ ;

            Ficou claro ?

            Caso não tenha.. estudo sobre 2pc pois o assunto é abrangente.

            #84091
            sp66d_rac6r
            Participante

              Entendi sim.

              Valeu!

              #84104
              sp66d_rac6r
              Participante

                Pessoal, verifiquei na V$INSTANCE que houve novo restart do banco.

                Tem alguma tabela/view onde consulto os erros do banco ou o log de shutdown e startup do banco?

                Agradeço desde já.

                #84108
                Ishii
                Participante

                  Olá,

                  Procure o arquivo alert.log que nele tem todos os eventos do Oracle inclusive se houve algum erro inesperado.

                  []s Ishii

                  #84109
                  sp66d_rac6r
                  Participante

                    [quote=”Ishii”:bmht50lm]Olá,

                    A aplicação é distribuída? Tipo grava os dados em bancos distribuídos? Se for isso pode ser que o problema esteja na aplicação mesmo…

                    []s Ishii[/quote]

                    Ishii,

                    A aplicação é distribuída sim.

                    Usa IIS como controle.

                    #84112
                    Ishii
                    Participante

                      Olá,

                      Muito provavelmente a app está apagando dados de um Banco que podem se referenciar a outro Banco que ainda não foi “limpo”, melhor rever em qual momento da rotina de limpeza isso ocorre e analisar se não deveria ser executado de outra forma.

                      []s Ishii

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