IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

[tomcat] freeze ...


Sujet :

Tomcat et TomEE Java

  1. #21
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    public static float esth_montantProduits(Date date){ 
           float montant = -1; 
     
            // Récupère la connexion au DataSource 
            Connexion conn = new Connexion(); 
     
     
            PreparedStatement pstmt=null; 
            ResultSet rs=null; 
            try { 
                if (date==null){ 
                    Calendar cal = Calendar.getInstance(); 
                    date = new Date(cal.getTimeInMillis()); 
                } 
                 pstmt = conn.getConn().prepareStatement("SELECT total_produits FROM esth_livre_caisse WHERE date_debut=?;"); 
                 pstmt.setDate(1, date); 
                rs = pstmt.executeQuery(); 
     
                if(rs.next()){ 
                    montant = rs.getFloat("total_produits"); 
                } 
                rs.close(); 
                pstmt.close(); 
            } 
            catch(SQLException sqle){ 
                //TODO voir si on voit le message 
                System.err.println(sqle.getMessage()); 
            } 
            finally{ 
                try{ 
                    conn.close(); 
                } 
                catch(SQLException sqle){} 
                conn=null; 
            } 
            return montant; 
       }//fin esth_montantProduitsEnCours
    Dans ton code tu fais conn.getConnection().
    Il faut que tu gardes la référence sur cette connection pour pouvoir la fermer sinon le ds.getConnection() te renvoie une autre source (un autre objet).

    Pour ta classe connexion il faut donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    package be.cityform.administration.sql; 
     
    import java.sql.Connection; 
    import java.sql.SQLException; 
    import javax.naming.Context; 
    import javax.naming.InitialContext; 
    import javax.sql.DataSource; 
     
    public class Connexion { 
     
        /** La référence au DataSource */ 
        private static DataSource ds = null; 
        private Connection conn = null;
     
        /** 
         * Initialise la connexion au DataSource 
         */ 
        public void static init() { 
            try { 
                Context initContext = new InitialContext(); 
                Context envContext = (Context) initContext.lookup("java:/comp/env"); 
                ds = (DataSource) envContext.lookup("jdbc/postgres"); 
     
     
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
        }//fin init 
     
        /** 
         * Retourne la session de connexion 
         * 
         * @return Connection 
         * @throws SQLException 
         */ 
        public Connection getConn() throws SQLException { 
            conn = ds.getConnection(); 
            return conn;
        }//fin getConn 
     
        public void close () throws SQLException  { 
            conn.close(); 
        }//fin close 
     
    }//fin Connexion
    Comme cela çà devrait fonctionner.
    Mais attention à n'appeler qu'une seule fois la méthode init.
    Voilà !

  2. #22
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Bon, essaye ceci pour voir à la place de ta classe Connexion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    package test;
     
    import java.sql.Connection;
     
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
     
    public class Connexion {
    	private static Context ctx = null;
    	private static final String JNDI_NAME = "java:/comp/env/jdbc/postgres";
     
    	static {
    		try {
    			ctx = new InitialContext();
    		} catch (NamingException e) {
    			e.printStackTrace();
    		}
    	}
     
     
        public static Connection getConnection() throws Exception {
            Connection cnx = ((DataSource)ctx.lookup(JNDI_NAME)).getConnection();
     
    		return cnx;
        }
     
    }
    et dans ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Connection cnx = Connexion.getConnection();
    Statement stm = cnx.blablabla...
    N'oublie pas de fermer la connexion dans le finaly de ta requête.
    Je n'ai pas tester mais celà doit marcher.

    Après celà, il se peut que ton pool de connexions ais un petit problème.
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Yeaaaaaaah

    merci Alwin et ZeKiD !!!
    ca fonctionne, j'ai utilisé le code de Alwin ... et ca fonctionne, c'était donc bien un problème de gestion de pool

    merci bcp

  4. #24
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Tu as bien fait d'utiliser le code d'Aldwin.
    En faisant le code , j'ai voulu éviter que tu pêtes tout ton code derrière.
    Bon au moins tu as choisi la bonne solution.
    Félicitations.

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    changer tout mon code etait surement la solution, car on peut pas dire que'il etait bien codé

    Merci a vous deux en tout cas pour votre patiente.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Docs, Tutoriels et astuces Tomcat et JBoss (US)
    Par Ricky81 dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 13/03/2009, 22h00
  2. [TOMCAT] Tomcat "freeze"...
    Par psylo dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 23/06/2004, 14h33
  3. Context sous Tomcat
    Par EL MANSOURI dans le forum JBuilder
    Réponses: 5
    Dernier message: 28/01/2003, 12h26
  4. Réponses: 4
    Dernier message: 04/12/2002, 12h07
  5. Tomcat + Apache-SOAP
    Par lucho31 dans le forum Services Web
    Réponses: 3
    Dernier message: 17/10/2002, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo