dwr existe coisa melhor?  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
rolemberg
JavaGuru
[Avatar]

Membro desde: 30/10/2006 23:41:06
Mensagens: 236
Offline

senhores, bom dia.
sim o titulo do assunto é sujestivo a tomar porrada no forum, mas estou com um grande problema e nada melhor do que compartilhar com a comunidade para ver se acho uma solução porque ja estou a 15 dias tentando resolver o problema mas não consigo. Vou explicar o problema:

Trabalho em um grande projeto que hoje recebe por dia cerca de 1500 usuarios.
O problema: estamos usando dwr para fazer algumas chamadas de combo e outras coisas mais, o problema é o seguinte existe um determinado momento, que um metodo, que esta sincronizado trava(lock) a variavel chamada sessionMap, fazendo com que um simples carregamento de combo leve em torno de 200 milisegundo, isso geralmente leva 0,5 segundo para acontecer.
Isso tudo é dentro do proprio dwr. Atualmente junto com a equipe do projeto fizemos a seguinte modificação no dwr: retiramos o sincronized do metodo e colocamos um backport na variavel sessionMap(ConcurrentHasMap), esta versão ainda não foi para produção.

Ah detalhe a versão da jvm é 1.4.

Minha pergunta é: alguém já passou por um problema semelhante com dwr ???
Outra alguém usa outro framework web para fazer esse tipo de trabalho que não seja o dwr???

Agradeço a atenção de todos e espero ter explicado o problema.

Só por curiosidade vou colar o java core também, caso alguem queira analisar:


at java.util.HashMap$HashIterator.nextEntry(HashMap.java(Compiled Code))

at java.util.HashMap$ValueIterator.next(HashMap.java(Compiled Code))

at org.directwebremoting.impl.DefaultScriptSessionManager.invalidate(DefaultScriptSessionManager.java(Compiled Code))
at org.directwebremoting.impl.DefaultScriptSession.invalidate(DefaultScriptSession.java(Compiled Code))
at org.directwebremoting.impl.DefaultScriptSessionManager.checkTimeouts(DefaultScriptSessionManager.java(Compiled Code))
at org.directwebremoting.impl.DefaultScriptSessionManager.maybeCheckTimeouts(DefaultScriptSessionManager.java(Compiled Code))
at org.directwebremoting.impl.DefaultScriptSessionManager.getScriptSession(DefaultScriptSessionManager.java(Compiled Code))
at org.directwebremoting.impl.DefaultWebContext.getScriptSession(DefaultWebContext.java(Compiled Code))
at org.directwebremoting.dwrp.BaseCallMarshaller.marshallOutbound(BaseCallMarshaller.java(Compiled Code))
at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java(Compiled Code))
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java(Compiled Code))
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java(Compiled Code))
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java(Compiled Code))
at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java(Compiled Code))
at com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java(Compiled Code))
at com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java(Compiled Code))
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java(Compiled Code))
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java(Compiled Code))
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java(Compiled Code))
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code))

at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

SCJP 5 - Fase Completa.
IBM WebSphere Process Server V7.0, Integration Development
IBM WebSphere Application Server Network Deployment v7.0, Core Administration
[Email] [MSN]
ignacio83
Java Ninja
[Avatar]

Membro desde: 16/03/2007 10:46:06
Mensagens: 253
Localização: São Paulo
Offline

Vou dar apenas a minha opinião..

Já usei muito DWR..

Atualmente para ajax utilizo JQuery + GSon (Biblioteca da google para conversão de Objects em JSon)

Gosto do DWR, porém sinto falta de muitos métodos utilitários..

Quanto ao seu erro, nunca passei por nada parecido..

André de Fontana Ignacio
[MSN]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team