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


Responder a