Opinião sobre Annotations com Hibernate

20 views
Skip to first unread message

22-gers

unread,
Aug 12, 2009, 5:26:25 PM8/12/09
to javasf: JavaServer Faces International Group
Galera é o seguinte... eu já usei mapeamento do hibernate com xml e
agora uso annotations. Até agora só achei vantagens em usar
annotation, por ser muito mais simples e mais prático, só que estou
com uma dúvida.

Estou tendo alguns problemas com o acesso ao banco de dados,
aparentemente sem razão alguma o acesso ao banco não é feito, e é
despejado uma exception como mostrado abaixo:

[code]
org.hibernate.exception.JDBCConnectionException: could not execute
query
at org.hibernate.exception.SQLStateConverter.convert
(SQLStateConverter.java:74)
at org.hibernate.exception.JDBCExceptionHelper.convert
(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache
(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.criteria.CriteriaLoader.list
(CriteriaLoader.java:94)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at org.hibernate.impl.CriteriaImpl.uniqueResult
(CriteriaImpl.java:305)
at br.com.b2ml.modelo.usuario.UsuarioDAO.getUsuarioValido
(UsuarioDAO.java:30)
at
br.com.b2ml.controle.publico.ControlePaginaLogin.actionValidarUsuario
(ControlePaginaLogin.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.el.parser.AstValue.invoke(AstValue.java:152)
at org.apache.el.MethodExpressionImpl.invoke
(MethodExpressionImpl.java:276)
at com.sun.facelets.el.TagMethodExpression.invoke
(TagMethodExpression.java:68)
at com.sun.facelets.el.LegacyMethodBinding.invoke
(LegacyMethodBinding.java:69)
at com.sun.faces.application.ActionListenerImpl.processAction
(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:
387)
at org.ajax4jsf.component.AjaxActionComponent.broadcast
(AjaxActionComponent.java:55)
at org.ajax4jsf.component.AjaxViewRoot.processEvents
(AjaxViewRoot.java:317)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents
(AjaxViewRoot.java:292)
at org.ajax4jsf.component.AjaxViewRoot.processPhase
(AjaxViewRoot.java:249)
at org.ajax4jsf.component.AjaxViewRoot.processApplication
(AjaxViewRoot.java:462)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute
(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute
(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:
265)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter
(BaseXMLFilter.java:154)
at org.ajax4jsf.webapp.BaseFilter.handleRequest
(BaseFilter.java:260)
at
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest
(BaseFilter.java:366)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:
493)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run
(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.postgresql.util.PSQLException: Um erro de E/S ocorreu
ao enviar para o processo servidor.
at org.postgresql.core.v3.QueryExecutorImpl.execute
(QueryExecutorImpl.java:218)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute
(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags
(AbstractJdbc2Statement.java:350)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery
(AbstractJdbc2Statement.java:254)
at org.hibernate.jdbc.AbstractBatcher.getResultSet
(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections
(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 46 more
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite
(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:
136)
at java.io.BufferedOutputStream.flushBuffer
(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.write
(BufferedOutputStream.java:78)
at org.postgresql.core.PGStream.SendChar(PGStream.java:174)
at org.postgresql.core.v3.QueryExecutorImpl.sendParse
(QueryExecutorImpl.java:760)
at org.postgresql.core.v3.QueryExecutorImpl.sendOneQuery
(QueryExecutorImpl.java:1037)
at org.postgresql.core.v3.QueryExecutorImpl.sendQuery
(QueryExecutorImpl.java:644)
at org.postgresql.core.v3.QueryExecutorImpl.execute
(QueryExecutorImpl.java:190)
... 54 more
[/code]

Queria saber se alguém já teve esse tipo de problema e se alguém sabe
se esse erro e outros podem ser causados por usar annotations, ou usá-
lo incorretamente, pois temos outros projetos aqui na empresa rodando
já a bastante tempo e não apresentam esse tipo de erro. Desde já
agradeço.

[]´s

Jean Michel

unread,
Aug 12, 2009, 8:17:55 PM8/12/09
to jav...@googlegroups.com
Perguntas:

A) Isso ocorre randomicamente em vários programas ou é sempre em um só (usuarioDAO)?
B) Como tu resolve isso atualmente: reset do app server, do banco, etc?
C) Qualquer método está acarretando isso ou é sempre em um específico (select/update/insert/delete)?




2009/8/12 22-gers <lsp_...@hotmail.com>



--
Best regards,
Jean J. Michel

* Sent from my iphone, please forgive the lack of accents and punctuation marks ;)
My blog: http://www.jeanjmichel.blogspot.com
My Twitter: http://twitter.com/jeanjmichel

Glauco P. Gomes

unread,
Aug 12, 2009, 10:11:02 PM8/12/09
to jav...@googlegroups.com
Isso deve ser erro no mapeamento, ativa o log do SQL gerado pelo
hibernate que ai tem como ver o que ele ta tendando executar, assim
ajuda a achar o erro.

Glauco P. Gomes

22-gers escreveu:

22-gers

unread,
Aug 13, 2009, 7:38:34 AM8/13/09
to javasf: JavaServer Faces International Group
Bom, respondendo as perguntas...
A) Isso ocorre em uma aplicação só, é a primeira que estamos usando
annotations, e também essa aplicação tem algumas outras
peculiaridades. Ela tem um webService que "alimenta" um site de busca.
Você entra com um código de busca no site, ele consulta o webService
e retorna uma resposta. Essas buscas são constantes, acredito que em
horários de pico acontecem +- 100 buscas em 30 minutos. A princípio
aconteceu esse erro específico 1 só vez, e na aplicação online.
Localmente nunca tive esse problema, mesmo testando a aplicação
durante alguns meses.
B) Na verdade antes de ocorrer esse problema, tinhamos reiniciado o
servidor de banco de dados(que é postgre) por um outro problema.
Cheguei até a pensar que por isso a aplicação não estava funcionando,
mas mudei de idéia logo pois já fiz isso outras vezes e nunca tinha
acontecido isso. Dai cheguei a reiniciar a aplicação(dei reload da
aplicação no tomcat) mas logo em seguida testei e nada. Voltou a
funcionar uns 5-10 minutos depois disso td, e aparentemente sem
fazermos nada. Achei alguns posts na net falando que esse tipo de erro
pode ser causado por lentidão na net, mas fiquei na dúvida.
C) Não sei o que acarreta o erro. A única exception que tenho no
console é a que eu postei aqui, mas aparentemente é uma consulta
(select).

Quanto ao log do sql, vou ativar e esperar para ver se ocorre o erro
novamente, assim que tiver alguma notícia volto a postar.

Obrigado pelos posts, abraços.

Victor Fugiwara

unread,
Aug 13, 2009, 8:56:11 AM8/13/09
to jav...@googlegroups.com
bom, como ele tá rodando na internet e pelo erro, parece que não conseguiu fazer a conexão, dá uma olhada no timeout da conexão... de repente pode estar muito baixo.

2009/8/13 22-gers <lsp_...@hotmail.com>
Reply all
Reply to author
Forward
0 new messages