Desempenho do Hibernate

Bom, antes de tudo gostaria de dizer q enfim entendi pq q o hibernate possui tantos fãs. Ele é simplesmente fantástico, ainda mais se usado em conjunto com o XDoclet ele fica altamente produtivo… mas, utilizando hibernate (para aplicacoes standalone) notei q ele eh meio (bem) lento na hora de abrir uma sessao. Como estou fazendo DAOs para a minha aplicacao, dentro de cada metodo do DAO eu abro a sessao, inicio a transacao e faço as operacoes, q são rápidas. Com isso tenho um overhead muito grande, pois o programa perde muito tempo soh pra abrir a conexao, e como isso eh feito varias vezes…

Já tentei fazer pooling com o C3P0 e cache, mesmo assim o desempenho continua pessimo, eh normal isso?!!? Eu sei q em utilizacao com o TOmcat, por exemplo utiliza-se datasource do tomcat, e assim tem-se um ganho de performance, mas no modo standalone ele eh assim mesmo?!!?

Olá, abrir uma sessão a cada requisição é tão custoso quanto abrir uma conexão com o banco se vc usar JBDC apenas. Procure por thread local session no site do hibernate que vc vê como resolver esse problema.

valeuz…

até onde eu sei, as sessões não são feitas pra serem criadas e destruidas toda hora…

[quote=“jack_-_ganzha”]Olá, abrir uma sessão a cada requisição é tão custoso quanto abrir uma conexão com o banco se vc usar JBDC apenas. Procure por thread local session no site do hibernate que vc vê como resolver esse problema.

valeuz…[/quote]

Ae Jack, vlw, era por isso mesmo q eu tava procurando, soh q eu nao consegui implementar… tipo eu vi o artigo 42, nele ele da um codigo, soh q ele da um lookup num “SessionFactory”, como q eu faço pra ele achar um sessionfactory via lookup?!? Aqui ta o pedaco do código:

         SessionFactory sf = (SessionFactory) new InitialContext().lookup("SessionFactory");
         s = sf.openSession();
         session.set(s);

Olá, darkseid, vc não precisa encontrar a SessionFactory via JNDI, vc pode coloca-la como um atributo da classe que faz o ThreadLocalSession e cria-la usando o Configuration do Hibernate mesmo.

valeuz…

Oi

Dark, se o desempenho for mesmo crucial, eu encararia o Torque como uma melhor solucão, sem nenhum esforco sobrenatural, a tua app fica rapidinha…

T+