- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 8 anos, 7 meses atrás por José Laurindo Chiappa.
-
AutorPosts
-
16 de março de 2016 às 2:43 am #108074airoospParticipante
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: 400resource_name: sessions
current_utilization: 92
max_utilization: 200
initial_allocation: 445
limit_value: 445O 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
16 de março de 2016 às 4:38 am #108075José Laurindo ChiappaModeradorAbsolutamente 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
16 de março de 2016 às 11:02 pm #108078airoospParticipanteChiappa,
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.
17 de março de 2016 às 3:44 am #108079José Laurindo ChiappaModeradorBem, 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
17 de março de 2016 às 7:53 pm #108080airoospParticipanteOpa, esqueci de falar, sim é o Maximo da IBM, que o usa o WebSphere em ambiente Windows.
21 de março de 2016 às 10:35 pm #108083José Laurindo ChiappaModeradorAcho 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
-
AutorPosts
- Você deve fazer login para responder a este tópico.