JBoss et MySql : Pb de timeout - Java - Programmation
Marsh Posté le 28-10-2004 à 14:05:35
Que se passe-t-il si ListeValeurs rencontre un problème ? Tu files directement dans le block catch, d'où tu lances une EJBException (ce qui c'est sans doute produit après lecture sommaire de ton log).
Je te laisse tirer la conclusion au sujet du close() du RS.
Marsh Posté le 28-10-2004 à 14:37:49
Ok pour le RS. Mais il y a qqchose que je ne comprends pas. Je t'explique, ce cas arrive lors de la modification d'un document. J'ouvre la fenêtre avec le doc à modifier, dc il m'affiche bien les données qu'il a été cherchées ds la base et qd je veux enregistrer les modifs c là qu'il me donne le msg d'erreur.
Marsh Posté le 28-10-2004 à 14:54:08
des malades mentaux qui font tout à la main ... tous ces lookups !
bon sinon, c'est moi où ton session bean est supposé etre stateless et t'en a fais un faux-stateful en declarant ta Connection en membre de classe?
... et puis les noms de méthodes, ça commence par une minuscule, pitié
Marsh Posté le 28-10-2004 à 15:09:36
Je te remercie ct bien le cas du stateless.
sinon précision, mes lookup ce sont des references créées automatiquement par jdev et mes noms de méthode commencent tous par une minuscule.
Merci
Marsh Posté le 28-10-2004 à 15:13:39
bon donc tu fais ton getConnection quand tu en a besoin, et pas dans le setContextMachin quoi... ça règle ton problème?
et sinon
public Collection ListeValeurs |
je vois un gros L majuscule moi
Spoiler : utilisez xdoclet |
Marsh Posté le 28-10-2004 à 15:18:55
Exact je l'ai loupé celui là, mille excuses.
En fait g juste changé l'état de mon EJB session je l'ai passé en stateless au lieu du stateful. La méthode ne change pas grand chose
Marsh Posté le 28-10-2004 à 15:19:58
Duckaurore a écrit : qd je veux enregistrer les modifs c là qu'il me donne le msg d'erreur. |
Où est ton code pour 'enregistrer' ?! Et tu veux dire que le msg d'erreur sur ton premier post est celui que tu obtiens pour l'enregistrement ?
Citation : Je vois un gros L majuscule moi |
Regarde bien, tu verras même un grand R.
Marsh Posté le 28-10-2004 à 15:24:44
Bon ok je t'accorde les majuscules c bien sûr sur les méthodes que g créées.
En fait le msg d'erreur qu'il y a sur le premier post est lié au fait :
1 - que je ne fermais pas un ResultSet
2 - sur l'état de l'EJB Session
Maintenant je n'ai plus aucun msg d'erreur
Marsh Posté le 28-10-2004 à 16:16:36
De rien, dis.
Marsh Posté le 31-10-2004 à 11:47:41
Tu utilises pleins de mauvaises pratiques : tu obtiens la connection JDBC dans setSessionContext() et apres tu l'utilises dans tes methodes. JBoss detecte les connections qui ne sont pas fermees lorsque tu quittes une methode.
Essaie ca :
1/ n'obtient pas la connection dans setSessionContext(), juste recupere la datasource dans JNDI. Apres tu utilises une connection quand tu en a besoin dans le scope de la methode.
2/ appelle close() sur tous les objets JDBC que tu vas utiliser : Connection/Statement/ResultSet
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try
{
conn = ds.getConnection();
ps = conn.prepareStatement("SELECT USER_ID FROM EMPLOYEE" );
rs = ps.executeQuery();
// etc...
}
finally
{
safeClose(rs);
safeClose(ps);
safeClose(conn);
}
public void safeClose(Connection conn)
{
if (conn != null)
{
try { conn.close(); }
catch(Exception ignored) { }
}
}
Marsh Posté le 28-10-2004 à 13:57:54
Voilà, j'ai une base de données MySQL et un serveur d'application JBoss, mes fenêtres s'affichent toutes mais j'ai des problèmes sur certaines manips, il me met le msg suivant :
2004-10-27 17:49:17,442 WARN [org.jboss.resource.adapter.jdbc.WrappedConnection] Closing a result set you left open! Please close it yourself.
java.lang.Exception: STACKTRACE
at org.jboss.resource.adapter.jdbc.WrappedStatement.registerResultSet(WrappedStatement.java:803)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:297)
at mypackage1.ListeValeursSessionBean.ListeValeurs(ListeValeursSessionBean.java:108)
at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
at org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(StatefulSessionContainer.java:521)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:128)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:153)
at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62)
at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:294)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:854)
at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:242)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)
at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:55)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at org.jboss.proxy.ejb.StatefulSessionInterceptor.invoke(StatefulSessionInterceptor.java:106)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy97.ListeValeurs(Unknown Source)
at mypackage1.ListeValeursSessionClient.ListeValeurs(ListeValeursSessionClient.java:48)
at org.apache.jsp.ModificationDoc_jsp._jspService(ModificationDoc_jsp.java:108)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:44)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:169)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
2004-10-27 17:49:17,442 DEBUG [org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager] Attempting to remove; ctx=org.jboss.ejb.StatefulSessionEnterpriseContext@34d46a
2004-10-27 17:49:17,442 DEBUG [org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager] Removal complete; ctx=org.jboss.ejb.StatefulSessionEnterpriseContext@34d46a
2004-10-27 17:49:47,472 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.parentTraceEnabled=true
2004-10-27 17:49:47,472 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.nestedTraceEnabled=false
2004-10-27 17:49:47,472 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.detectDuplicateNesting=true
2004-10-27 17:49:47,472 ERROR [org.jboss.ejb.plugins.LogInterceptor] EJBException in method: public abstract mypackage1.ListeValeursSession mypackage1.ListeValeursSessionHome.create() throws javax.ejb.CreateException,java.rmi.RemoteException:
javax.ejb.EJBException: Connexion à la base de données impossible : No ManagedConnections available within configured blocking timeout ( 30000 [ms] ); - nested throwable: (javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ))
at mypackage1.ListeValeursSessionBean.setSessionContext(ListeValeursSessionBean.java:51)
at org.jboss.ejb.StatefulSessionEnterpriseContext.<init>(StatefulSessionEnterpriseContext.java:54)
at org.jboss.ejb.plugins.StatefulSessionInstancePool.create(StatefulSessionInstancePool.java:32)
at org.jboss.ejb.plugins.AbstractInstancePool.get(AbstractInstancePool.java:146)
at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invokeHome(StatefulSessionInstanceInterceptor.java:112)
at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:120)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:93)
at org.jboss.ejb.SessionContainer.internalInvokeHome(SessionContainer.java:613)
at org.jboss.ejb.Container.invoke(Container.java:876)
at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:242)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)
at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:55)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:169)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy96.create(Unknown Source)
at mypackage1.ListeValeursSessionClient.ListeValeurs(ListeValeursSessionClient.java:47)
at org.apache.jsp.ModificationDoc_jsp._jspService(ModificationDoc_jsp.java:109)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:44)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:169)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
2004-10-27 17:49:47,488 INFO [STDOUT] Erreur de liste de valeurs??? : EJBException:; nested exception is:
javax.ejb.EJBException: Connexion à la base de données impossible : No ManagedConnections available within configured blocking timeout ( 30000 [ms] ); - nested throwable: (javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ))
Je crois que le problème vient de la classe suivante : (pourtant j'ai fermé les resultset)
Qqun peut-il m'aider, SVP?
---------------
** Aurore **