Voc� est� usando a mesma conex�o para os diferentes usu�rios? N�o falta nenhum synchronized em nenhum lugar? De prefer�ncia as conex�es, statementes e resultsets devem ser abertos e fechados dentro dos m�todos e n�o serem vari�veis de inst�ncia, e for isso, deve-se usar o try/catch/finally fechando tudo no finally para garantir que tudo seja fechado. E para melhorar a performance, ao inv�z de abrir a conex�o no m�todo, deve-se usar uma Pool de conex�es.
[]'s Andr� PS: Este assunto cabe mais na lista enterprise-java do que na de j2me. ----- Original Message ----- From: "Alexandre Palhinha" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, August 29, 2002 09:13 Subject: Re: [j2me-list] Concorrencia > O banco est� identificando as chamadas como sendo do mesmo processo. > > Esse banco aceita um timeout de cursor aberto? Se sim, vc nunca fecha e > deixa que o banco feche por timeout, ou poe uma task rodando exclusivamente > pra fechar cursores com mais de X minutos de vida. > > []s Alexandre Palhinha > > ----- Original Message ----- > From: "Glauco Cesar de Castro" <[EMAIL PROTECTED]> > To: "Java List" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> > Sent: Wednesday, August 28, 2002 6:23 PM > Subject: [j2me-list] Concorrencia > > > Ola para todos na lista. > > Estou com um problema serio aqui. Tenho uma aplicacao desenvolvida em > JSP, que acessa varias classes em Java (negocio) que acessa outras > classes de persistencia e que vai ate o banco. > Quando acesso o sistema com um usuario, ele entra e sai sem problemas, > executando todos os passos. Mas se faco um teste de stress, com cinco > usuarios por exemplo, esta ocorrendo um erro de concorrencia de acesso. > Ainda nao consegui determinar aonde esta o erro, mas fazendo alguns > debugs com o velho out.println() consegui ver o seguinte: > > em determinada classe eu tenho um select e faco um loop nesse select. > Acontece que no meio do loop, outro usuario faz a mesma requisicao e por > algum motivo, ele executa antes da primeira chamada, fechando o cursor. > Quando o primeiro que chamou vai tentar fechar o cursor, ele fala que ja > foi fechado. Nao sei se eh realmente esse o problema, estou chutando, > mas acho que isso esta fazendo com que o sistema se perca, nao > conseguindo dar retorno e ocorrendo time out no aplicativo de stress. > > Outro detalhe. Monitorando o banco, eu constatei que alguns cursores > estao ficando abertos. Se executo o sistema com apenas um usuario, > direitinho, ele abre e fecha tudo. Mas se existe usuarios concorrentes, > os cursores permanecem abertos. > > Por acaso alguem ja passou por algo parecido? Como eh que o java trata > esse tipo de coisa? > > OBS: Ja constatei que o problema nao e o "web server", pois ja tentei > com o tomcat, jrun, tomcat com IIS, Resin, HTTP Server da oracle e todos > dao o mesmo problema. > > Obrigado por qualquer ajuda, > Glauco > > > > >
