Pular para o conteúdo
  • Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 7 anos, 11 meses atrás por Avatar de José Laurindo ChiappaJosé Laurindo Chiappa.
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #108074
    Avatar de airoospairoosp
    Participante

      Boa tarde,

      Aqui na empresa utilizamos um ERP da IBM, que utiliza o WebSphere. Este ERP foi desenvolvido em JAVA e as vezes acontece o erro ORA-04030. Quando ocorre o erro, ninguém consegue se conectar no banco, mas volta ao normal quando no número de sessões dimininui.

      O banco 10g (10.2.0.5) esta em um servidor Windows 2003 Server 32bits. Ao executar a query abaixo, o resultado é:

      select * from v$resource_limit where resource_name in (‘sessions’,’processes’)

      resultado:

      resource_name: processes
      current_utilization: 225
      max_utilization: 303
      initial_allocation: 400
      limit_value: 400

      resource_name: sessions
      current_utilization: 92
      max_utilization: 200
      initial_allocation: 445
      limit_value: 445

      O detalhe é que há muitas sessões conforme a consulta na v$session.

      program: JDBC Thin Client
      module: JDBC Thin Client
      osuser: SYSTEM
      status: INACTIVE
      machine: Servidor onde esta instalado do WebSphere

      É normal haver muitas conexões deste tipo? Interessante que há conexões do JDBC com status INACTIVE desde 04/02/2016, 09/03/2016.

      Se alguém tem algum dica e/ou informação sobre este assunto agradeço.

      Obrigado.

      Airton

      #108075
      Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
      Moderador

        Absolutamente impossível se afirmar com certeza sem ver / conhecer os detalhes de como foi programado/implementado o tal ERP, mas pelo que vc descreve eu *** ACHO *** que o que está havendo aí é que esse tal software implementa o que a gente chama de POOL DE CONEXÃO, ie : há um software (provavelmente instalado no webserver) que conecta no database, cria umas tantas dezenas de conexões/sessões no database, E depois disso, quando uma tela/aplicativo/parte do ERP precisa se conectar no database, ao invés de pedir por conexão no database criar uma sessão/conexão , é o POOL que reserva / direciona uma dessas sessões/conexões que ele criou antes para o aplicativo/tela/rotina do ERP que quer usar algo no database…..Depois que a tela/aplicação usou o que precisava do database, aí o pool de conexão marca a sessão/conexão como disponível, passível portante de ser reutilizada nos próximos pediso…
        OU SEJA, vc deve pensar no POOL DE CONEXÕES como alguém que faz o meio de campo entre o database e a aplicação (o ERP nesse caso) – isso é EXTREMAMENTE COMUM de se ter em softwares corporativos, veja https://pt.wikipedia.org/wiki/Pool_de_conex%C3%B5es para mais refs se não conhecia o conceito….

        ==> A minha ** SUPOSIÇÃO ** então é clara, então : imho essa teu ERP usa um pool de conexões, esse pool está mal configurado, criando sessões em demasia E/OU após cada utilização ao invés de reaproveitar as sessões/conexões já existentes o pool tá criando mais e mais, até estourar o limite, é isso que eu acho…
        Aciona o Suporte da IBM para esse ERP (ou chama alguém entendido nesse ERP) e recheque as configurações do pool de conexões….

        []s

        Chiappa

        #108078
        Avatar de airoospairoosp
        Participante

          Chiappa,

          Obrigado pela resposta, vou verificar mais informações sobre o Pool de conexões. Abri um chamado no suporte da IBM para ver que pode ser feito.

          Em anexo estou enviando o print de sessões do Oracle no final da tarde de ontem.

          #108079
          Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
          Moderador

            Bem, apesar de eu ter perguntado vc ** não confirmou ** exatamente qual é o tal ERP, ** não ** disse se realmente há pool de conexão ou não, mas Supondo que seja o MAXIMO (que é o que eu já ouvi falar da IBM) E que haja mesmo pool de conexões, uma googlada rápida indicou http://www-01.ibm.com/support/docview.wss?uid=swg21640951 , http://www-01.ibm.com/support/docview.wss?uid=swg21469906 , http://maximodev.blogspot.com.br/2012/06/java-jdbc-sql-connection-maximo.html e http://surenmaximoworks.blogspot.com.br/2014/05/system-properties-to-close-long-db.html como exemplos de má-config onde ou o pool criava muitas conexões e/ou não reaproveitava as conexões inativas, preferindo criar novas (isso é o chamado LEAK – vazamento – de conexões), veja lá…. Só pra comentar, não sei se é o seu caso (eu não uso esse tal software) mas via de regra o Suporte Técnico corrige bugs (o que não é o caso) OU então te dá Suporte de utilização, ie, aponta textos e fontes com guias/best practices : ele NÂO faz o tuning pra vc, ele NÃO faz a configuração pra vc…. Assim, se vc não sabe como fazer, talvez vc Realmente Precise chamar um especialista no software pra implementar as Recomendações do Suporte….

            Sobre a lista de conexões que vc mostra, o que a gente pode dizer com *** 101% *** de certeza é que o RDBMS Oracle ABSOLUTAMENTE NÃO É feito em Java, NÃO usa rotinas Java no seu funcionamento normal, isso com Certeza : então, CERTAMENTE essas sessões aí usando esse programa “java thin cliente” são SIM externas ao RDBMS e ao database em si, portanto vc tem que encontrar EXTERNAMENTE a fonte delas e a Causa para elas ficarem inativas e aumentando tão frequentemente que chegam no limite – no database com TOTAL CERTEZA não há o que se fazer…. A única coisa que vc pode fazer no database (para funcionar como um grande REMENDO, um quebra-galho, pra ver se demora um pouco mais pra dar o erro) é Aumentar o número máximo de conexões possíveis – lembro porém que isso NÂO É solução, de jeito nenhum….

            O seu próximo procedimento então penso que está claro : é CONFIRMAR com quem de direito se vc tem mesmo pool de conexão, em caso positivo (que parece ser provável, pelo que vc diz) é configurar corretamente o pool e é isso…

            []s

            Chiappa
            
            #108080
            Avatar de airoospairoosp
            Participante

              Opa, esqueci de falar, sim é o Maximo da IBM, que o usa o WebSphere em ambiente Windows.

              #108083
              Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
              Moderador

                Acho que é mesmo o que eu falei então, ie : confirmar com quem de direito se vc tá com pool configurado aí, se sim checar com o Suporte do MAXIMO por bugfixes e/ou casos de má-config (em especial para bugs/situações diretamente relacionados com pool, como sessões não sendo reaproveitadas e ao invés o pool criar novas) , e best practices para config do pool – recebido isso, como eu disse MUITO PROVAVELMENTE o Suporte do MAXIMO não vai implementar os bugfixes/ajustar as suas má-cofigs eventuais/implementar as best practices (via de regra o Suporte só dá a info) então (caso vc não tenha o conhecimento) é acionar um Especialista nessa app para implementar o material recebido do Suporte, é isso…

                []s

                Chiappa

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