These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Erreur hibernate c3p0
PostPosted: Fri Jun 24, 2011 8:06 am 
Newbie

Joined: Fri Jun 24, 2011 7:26 am
Posts: 1
Bonjour,

J'ai une classe JUnit qui teste l'accès à la base de données,

Code:
package fr.s2e.aps.dao.impl;

import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;

import fr.s2e.aps.critere.ArpArchiveCritere;
import fr.s2e.aps.ometier.ArpArchive;
import fr.s2e.test.dao.BeanFactoryImpl;
import fr.s2e.test.dao.HibernateTestCase;

/**
*
*/
public class TestArpArchiveDaoImpl extends HibernateTestCase {

   private ArpArchiveDaoImpl dao;
   private HashSet<Long> idToDelete;

   @Override
   protected void setUp() throws Exception {
      super.setUp();
      idToDelete = new HashSet<Long>();
      this.dao = ((ArpArchiveDaoImpl) BeanFactoryImpl
            .getBean("arpArchiveDao"));
   }

   @Override
   protected void tearDown() throws Exception {
      super.tearDown();
   }

   private ArpArchive initialiserObjet(ArpArchive objetTest) {
      objetTest.setBoTraitActif(true);
      objetTest.setCdPeriod("M");
      objetTest.setCdTccp(3);
      objetTest.setLbComputer("SHSCMET012");
      objetTest.setLbNomEntree("TEST nomEntree");
      objetTest.setLbRepEntree("TEST repEntree");
      objetTest.setLbRepSortie("TEST repSortie");
      objetTest.setNuAnciennete(2);
      objetTest.setNuHeureArc(3);
      objetTest.setNuJourArc(4);
      objetTest.setNuMoisArc(5);
      objetTest.setNuRang(6);
      objetTest.setDateCreation(new Date());
      return objetTest;
   }

   private void verifierObjet(final ArpArchive objetTest) {
      assertTrue(objetTest.getBoTraitActif());
      assertEquals("M", objetTest.getCdPeriod());
      assertTrue(3 == objetTest.getCdTccp());
      assertEquals("SHSCMET012", objetTest.getLbComputer());
      assertEquals("TEST nomEntree", objetTest.getLbNomEntree());
      assertEquals("TEST repEntree", objetTest.getLbRepEntree());
      assertEquals("TEST repSortie", objetTest.getLbRepSortie());
      assertTrue(2 == objetTest.getNuAnciennete());
      assertTrue(3 == objetTest.getNuHeureArc());
      assertTrue(4 == objetTest.getNuJourArc());
      assertTrue(5 == objetTest.getNuMoisArc());
      assertTrue(6 == objetTest.getNuRang());
   }

   /**
    * Teste l'ajout, la modification, la suppression
    */
   public void testBean() {
      long id;

      // Création
      {
         ArpArchive objetTest = new ArpArchive();
         this.initialiserObjet(objetTest);
         objetTest = this.dao.saveOrUpdate(objetTest);
         id = objetTest.getId();
         this.idToDelete.add(id);
         getSession().flush();
      }
      getSession().clear();
      // Récupération de l'objet créé
      {
         ArpArchive objetTest = this.dao.findById(id);
         this.verifierObjet(objetTest);
      }
      // Suppression
      {
         ArpArchive objetTest = this.dao.findById(id);
         this.dao.delete(objetTest);
         getSession().flush();
         getSession().clear();
         assertNull(dao.findById(id));
         getSession().flush();
      }
      getSession().flush();
   }

   /**
    * Teste la recherche
    */
   public void testFindByCriteria() {
      long id;

      // Création
      {
         ArpArchive objetTest = new ArpArchive();
         this.initialiserObjet(objetTest);
         objetTest = this.dao.saveOrUpdate(objetTest);
         id = objetTest.getId();
         this.idToDelete.add(id);
         getSession().flush();
      }
      getSession().clear();
      // Récupération de l'objet créé
      {
         Map<ArpArchiveCritere, Object> map = new HashMap<ArpArchiveCritere, Object>();

         map.put(ArpArchiveCritere.cdPeriod, "M");
         map.put(ArpArchiveCritere.cdTccp, 3);
         map.put(ArpArchiveCritere.lbComputer, "SHSCMET012");
         map.put(ArpArchiveCritere.lbNomEntree, "TEST nomEntree");
         map.put(ArpArchiveCritere.lbRepEntree, "TEST repEntree");
         map.put(ArpArchiveCritere.lbRepSortie, "TEST repSortie");
         map.put(ArpArchiveCritere.nuAnciennete, 2);
         map.put(ArpArchiveCritere.nuHeureArc, 3);
         map.put(ArpArchiveCritere.nuJourArc, 4);
         map.put(ArpArchiveCritere.nuMoisArc, 5);
         map.put(ArpArchiveCritere.nuRang, 6);
         List<ArpArchive> result = this.dao.findByCriteria(map);
         assertEquals(1, result.size());
         ArpArchive objetTest = result.get(0);
         this.verifierObjet(objetTest);
      }
      // Suppression
      {
         ArpArchive objetTest = this.dao.findById(id);
         this.dao.delete(objetTest);
         getSession().flush();
         getSession().clear();
         assertNull(dao.findById(id));
         getSession().flush();
      }
      getSession().clear();
   }

}


avec la configuration SPRING à la base de données :
Code:
<bean id="BD_MET" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> 
      <property name="driverClass" value="com.p6spy.engine.spy.P6SpyDriver" /><!-- A remettre quand la bibliotheque correspondante sera ré-écrite/-->
      <property name="jdbcUrl" value="jdbc:oracle:thin:@(description=(address=(host=  monserveurbd)(protocol=tcp)(port=18922))(connect_data=(service_name=BD.WORLD)))" /> 
      <property name="user" value="_GNR_GEN_USER" /> 
      <property name="password" value="_PASSWD" /> 
      <property name="initialPoolSize" value="1" /> 
      <property name="minPoolSize" value="5" /> 
      <property name="maxPoolSize" value="5" /> 
      <property name="idleConnectionTestPeriod" value="500" /> 
      <property name="acquireIncrement" value="1" /> 
      <property name="maxStatements" value="50" /> 
      <property name="numHelperThreads" value="1" /> 
   </bean> 


Lorsque j'exécute les tests testBean() et testFindByCriteria() individuellement, il n'y a pas d'erreur.
En revanche quand j'exécute le JUnit en une seule j'ai l'erreur
Code:
p6spy - 1308916342302|0|0|statement|select this_.ID_ARCHIVE as ID1_1_0_, this_.UT_CREAT as UT2_1_0_, this_.DT_CREAT as DT3_1_0_, this_.DT_MODIF as DT4_1_0_, this_.UT_MODIF as UT5_1_0_, this_.BO_TRAIT_ACTIF as BO6_1_0_, this_.CD_PERIOD as CD7_1_0_, this_.CD_TCCP as CD8_1_0_, this_.LB_COMPUTER as LB9_1_0_, this_.LB_NOM_ENTREE as LB10_1_0_, this_.LB_REP_ENTREE as LB11_1_0_, this_.LB_REP_SORTIE as LB12_1_0_, this_.NU_ANCIENNETE as NU13_1_0_, this_.NU_HEURE_ARC as NU14_1_0_, this_.NU_JOUR_ARC as NU15_1_0_, this_.NU_MOIS_ARC as NU16_1_0_, this_.NU_RANG as NU17_1_0_ from IDE_GNR_ARP_ARCHIVE this_ where (this_.DT_CREAT=? and this_.BO_TRAIT_ACTIF=? and this_.CD_PERIOD=? and this_.CD_TCCP=? and this_.LB_COMPUTER=? and this_.LB_NOM_ENTREE=? and this_.LB_REP_ENTREE=? and this_.LB_REP_SORTIE=? and this_.NU_ANCIENNETE=? and this_.NU_HEURE_ARC=? and this_.NU_JOUR_ARC=? and this_.NU_MOIS_ARC=? and this_.NU_RANG=?)|select this_.ID_ARCHIVE as ID1_1_0_, this_.UT_CREAT as UT2_1_0_, this_.DT_CREAT as DT3_1_0_, this_.DT_MODIF as DT4_1_0_, this_.UT_MODIF as UT5_1_0_, this_.BO_TRAIT_ACTIF as BO6_1_0_, this_.CD_PERIOD as CD7_1_0_, this_.CD_TCCP as CD8_1_0_, this_.LB_COMPUTER as LB9_1_0_, this_.LB_NOM_ENTREE as LB10_1_0_, this_.LB_REP_ENTREE as LB11_1_0_, this_.LB_REP_SORTIE as LB12_1_0_, this_.NU_ANCIENNETE as NU13_1_0_, this_.NU_HEURE_ARC as NU14_1_0_, this_.NU_JOUR_ARC as NU15_1_0_, this_.NU_MOIS_ARC as NU16_1_0_, this_.NU_RANG as NU17_1_0_ from IDE_GNR_ARP_ARCHIVE this_ where (this_.DT_CREAT='2011-06-24 13:52:22.302' and this_.BO_TRAIT_ACTIF='true' and this_.CD_PERIOD='M' and this_.CD_TCCP=3 and this_.LB_COMPUTER='SHSCMET012' and this_.LB_NOM_ENTREE='TEST nomEntree' and this_.LB_REP_ENTREE='TEST repEntree' and this_.LB_REP_SORTIE='TEST repSortie' and this_.NU_ANCIENNETE=2 and this_.NU_HEURE_ARC=3 and this_.NU_JOUR_ARC=4 and this_.NU_MOIS_ARC=5 and this_.NU_RANG=6)
p6spy - 1308916342317|0|0|statement|insert into IDE_GNR_ARP_ARCHIVE (UT_CREAT, DT_CREAT, BO_TRAIT_ACTIF, CD_PERIOD, CD_TCCP, LB_COMPUTER, LB_NOM_ENTREE, LB_REP_ENTREE, LB_REP_SORTIE, NU_ANCIENNETE, NU_HEURE_ARC, NU_JOUR_ARC, NU_MOIS_ARC, NU_RANG) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|insert into IDE_GNR_ARP_ARCHIVE (UT_CREAT, DT_CREAT, BO_TRAIT_ACTIF, CD_PERIOD, CD_TCCP, LB_COMPUTER, LB_NOM_ENTREE, LB_REP_ENTREE, LB_REP_SORTIE, NU_ANCIENNETE, NU_HEURE_ARC, NU_JOUR_ARC, NU_MOIS_ARC, NU_RANG) values ('TST_USR', '2011-06-24 13:52:22.302', 'true', 'M', 3, 'SHSCMET012', 'TEST nomEntree', 'TEST repEntree', 'TEST repSortie', 2, 3, 4, 5, 6)
24 juin 2011 13:52:22 org.hibernate.util.JDBCExceptionReporter logExceptions
ATTENTION: SQL Error: 17041, SQLState: null
24 juin 2011 13:52:22 org.hibernate.util.JDBCExceptionReporter logExceptions
GRAVE: Paramètre IN ou OUT absent dans l'index :: 15


Sans pool de connexion, je n'ai pas d'erreur.
Code:
  <bean id="BD_MET" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!-- property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /-->
        <property name="driverClassName" value="com.p6spy.engine.spy.P6SpyDriver" />
        <property name="url" value="jdbc:oracle:thin:@(description=(address=(host= monserveurbd.com)(protocol=tcp)(port=18922))(connect_data=(service_name=BD.WORLD)))" />
        <property name="username" value="_GNR_GEN_USER" />
        <property name="password" value="_GNR_PASSWD"/>
    </bean>


Est-ce que quelqu'un peut m'aider à configurer le pool de connexion ?

Merci,
jclandron


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.