JBoss et MySql : Pb de timeout

JBoss et MySql : Pb de timeout - Java - Programmation

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 :  

Citation :


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)

Code :
  1. package mypackage1;
  2. import javax.ejb.*;
  3. import java.sql.*;
  4. import javax.sql.*;
  5. import java.util.*;
  6. import javax.naming.*;
  7. import java.util.Collection;
  8. import javax.ejb.ObjectNotFoundException;
  9. import java.sql.ResultSet;
  10. import java.io.*;
  11. import java.util.Vector;
  12. import java.rmi.RemoteException;
  13. import javax.naming.InitialContext;
  14. import javax.naming.NamingException;
  15. import javax.rmi.PortableRemoteObject;
  16. public class ListeValeursSessionBean implements SessionBean
  17. {
  18.   private SessionContext context;
  19.   private Connection connexionBD;
  20.   private String dbName="java:DefaultDS";
  21.   public void ejbCreate() 
  22.   {
  23.   }
  24.   public void ejbActivate()
  25.   {
  26.   }
  27.   public void ejbPassivate()
  28.   {
  29.   }
  30.   public void ejbRemove()
  31.   {
  32.   }
  33.   public void setSessionContext(SessionContext ctx)
  34.   {
  35.     this.context = ctx;
  36.   try
  37.   {
  38.     InitialContext ic = new InitialContext();
  39.     DataSource ds = (DataSource) ic.lookup(dbName);
  40.     connexionBD = ds.getConnection();
  41.    
  42.   }
  43.   catch (Exception e)
  44.   {
  45.     throw new EJBException("Connexion à la base de données impossible : "+e.getMessage());
  46.   }
  47.   }
  48.  
  49.   public String RetourneRequete(String nomRequete) throws IOException
  50.   {
  51.     Properties props=new Properties();
  52.     String val = null;
  53.    
  54.     try
  55.     {
  56.     FileInputStream in;
  57.     in=new FileInputStream("H:\\Dev\\GestionBase\\src\\Requetes.properties" );
  58.     props.load(in);
  59.     in.close();
  60.     val=props.getProperty(nomRequete);
  61.         }
  62.     catch(IOException ex)
  63.     {
  64.       System.out.println("ERREUR lors de la lecture : " + ex.getMessage());
  65.     }
  66.     System.out.println ("#################################################################" );
  67.     System.out.println ("requete : "+val);
  68.     System.out.println ("#################################################################" );
  69.     return val;
  70.   }
  71.  
  72.   public Collection ListeValeurs(String nomRequete, Vector param) throws  ObjectNotFoundException, IOException
  73.   {
  74.     ResultSet rsListeValeurs;
  75.     Vector listeValeurs = new Vector();
  76.     PreparedStatement psListeValeurs;
  77.   try
  78.   {
  79.     String requete = RetourneRequete(nomRequete);
  80.     psListeValeurs = connexionBD.prepareStatement(requete);
  81.     if(param!=null)
  82.     {
  83.       for (int i=0; i<param.size();i++)
  84.       {
  85.         String classeParam = param.elementAt(i).getClass().getName();
  86.         if(classeParam.compareTo("java.lang.String" )==0)
  87.         {
  88.           psListeValeurs.setString(i+1, param.elementAt(i).toString());
  89.         }
  90.         if(classeParam.compareTo("java.lang.Integer" )==0)
  91.         {
  92.           psListeValeurs.setInt(i+1, param.elementAt(i).hashCode());
  93.         }
  94.         if(classeParam.compareTo("java.lang.Long" )==0)
  95.         {
  96.           psListeValeurs.setLong(i+1, param.elementAt(i).hashCode());
  97.         }
  98.       }
  99.     }
  100.    
  101.     rsListeValeurs = psListeValeurs.executeQuery(); 
  102.     System.out.println ("#################################################################" );
  103.     //calcul du nombre de colonnes  
  104.     ResultSetMetaData rsmd=psListeValeurs.getMetaData();
  105.     int nbColonnes = rsmd.getColumnCount();
  106.    
  107.       for(int i=1;i<=nbColonnes;i++){
  108.         listeValeurs.insertElementAt(new Vector(), i-1);       
  109.     }
  110.      while (rsListeValeurs.next()){
  111.         int indiceColonne = 0;
  112.         int indiceLigne = 0;
  113.         while (indiceLigne < nbColonnes){
  114.           ((Vector)(listeValeurs.elementAt(indiceColonne))).add(rsListeValeurs.getString(indiceLigne+1));
  115.           indiceLigne++;
  116.           indiceColonne++;
  117.         }
  118.      }
  119.      System.out.println ("#################################################################" );
  120.     System.out.println ("Liste valeurs : "+listeValeurs);
  121.      System.out.println ("#################################################################" );
  122.     System.out.println ("Liste valeurs param: "+param);
  123.     psListeValeurs.close();
  124.     rsListeValeurs.close();
  125.    
  126.    
  127.   }
  128.   catch (SQLException e)
  129.   {
  130.       System.out.println("################################################" );
  131.      throw new EJBException("Liste valeurs " + e.getMessage());
  132.   }
  133.   if (listeValeurs.isEmpty())
  134.     throw new ObjectNotFoundException("Aucune valeur trouvée." );
  135.   return (Collection) listeValeurs;
  136.   }
  137.   private ContexteGestionBaseHome getContexteGestionBaseHome() throws NamingException
  138.   {
  139.     final InitialContext context = new InitialContext();
  140.     return (ContexteGestionBaseHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/ContexteGestionBase" ), ContexteGestionBaseHome.class);
  141.   }
  142.   private DocumentHome getDocumentHome() throws NamingException
  143.   {
  144.     final InitialContext context = new InitialContext();
  145.     return (DocumentHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Document" ), DocumentHome.class);
  146.   }
  147.   private TypedocHome getTypedocHome() throws NamingException
  148.   {
  149.     final InitialContext context = new InitialContext();
  150.     return (TypedocHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Typedoc" ), TypedocHome.class);
  151.   }
  152.   private CommuneHome getCommuneHome() throws NamingException
  153.   {
  154.     final InitialContext context = new InitialContext();
  155.     return (CommuneHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Commune" ), CommuneHome.class);
  156.   }
  157.   private CoordonneeHome getCoordonneeHome() throws NamingException
  158.   {
  159.     final InitialContext context = new InitialContext();
  160.     return (CoordonneeHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Coordonnee" ), CoordonneeHome.class);
  161.   }
  162.   private ListemotcleHome getListemotcleHome() throws NamingException
  163.   {
  164.     final InitialContext context = new InitialContext();
  165.     return (ListemotcleHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Listemotcle" ), ListemotcleHome.class);
  166.   }
  167.   private PaysHome getPaysHome() throws NamingException
  168.   {
  169.     final InitialContext context = new InitialContext();
  170.     return (PaysHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Pays" ), PaysHome.class);
  171.   }
  172.   private PersonneHome getPersonneHome() throws NamingException
  173.   {
  174.     final InitialContext context = new InitialContext();
  175.     return (PersonneHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Personne" ), PersonneHome.class);
  176.   }
  177.   private RegionHome getRegionHome() throws NamingException
  178.   {
  179.     final InitialContext context = new InitialContext();
  180.     return (RegionHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Region" ), RegionHome.class);
  181.   }
  182.   private EstdefiniparHome getEstdefiniparHome() throws NamingException
  183.   {
  184.     final InitialContext context = new InitialContext();
  185.     return (EstdefiniparHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Estdefinipar" ), EstdefiniparHome.class);
  186.   }
  187.   private EstreconnuparHome getEstreconnuparHome() throws NamingException
  188.   {
  189.     final InitialContext context = new InitialContext();
  190.     return (EstreconnuparHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/Estreconnupar" ), EstreconnuparHome.class);
  191.   }
  192. }


 
Qqun peut-il m'aider, SVP?


---------------
** Aurore **
Reply

Marsh Posté le 28-10-2004 à 13:57:54   

Reply

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.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

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.


---------------
** Aurore **
Reply

Marsh Posté le 28-10-2004 à 14:54:08    

[:psychokwak] des malades mentaux qui font tout à la main ... tous ces lookups ! [:psychokwak]
 
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é [:psychokwak]

Reply

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


---------------
** Aurore **
Reply

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

Reply

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


---------------
** Aurore **
Reply

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.  :D  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

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


---------------
** Aurore **
Reply

Marsh Posté le 28-10-2004 à 16:16:36    

De rien, dis.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 28-10-2004 à 16:16:36   

Reply

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) { }
   }
}


Message édité par julienv le 31-10-2004 à 11:49:01
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed