Feeds de los foros

En la página principal de los foros encontrarás los enlaces al logo feed feed general y al de cada uno de los foros.

Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible

Buscar en el foro

Foro J2EE

feed Foro J2EE Foro: J2EE

Nuevo Tema Nuevo Tema

Ayuda con c3p0, JBoss e Hibernate 10/05/2008 19:32
ealonso04

Hola gente de javahispano, he estado leyendo un poco sobre c3p0 para manejar un pool de conexiones y me interesaría muchísimo que me orientaran sobre cómo implementarlo correctamente en mi ambiente de desarrollo. Mi escenario es el siguiente:

Estoy desarrollando una aplicación Flex montada sobre JBoss 4.0.5 GA, MySql, uso Hibernate 3 y el jar de c3p0-0.8.5.

Después de ver algunos ejemplos agregué las líneas de c3p0 a mi archivo hibernate.cfg.xml de Hibernate (no uso el .properties), el cual quedó de la siguiente manera:


<hibernate-configuration>
<session-factory>
      <property name="hibernate.connection.driver_class">com.my sql.jdbc.Driver</property>
      <property name="hibernate.connection.url">jdbc:mysql://lo calhost:3306/data_base</property>
      <property name="hibernate.connection.username">user</p roperty>
      <property name="hibernate.connection.password">password&l t;/property>
      <property name="hibernate.connection.pool_size">10</pr operty>
      <property name="show_sql">true</property>
      <property name="dialect">org.hibernate.dialect.MySQLDiale ct</property>
      <property name="hibernate.hbm2ddl.auto">update</proper ty>
     
      
      <property name="hibernate.c3p0.idle_test_period">3</pr operty>
        <property name="hibernate.c3p0.max_size">100</property >
        <property name="hibernate.c3p0.min_size">5</property&g t;
        <property name="hibernate.c3p0.timeout">300</property& gt;
        <property name="hibernate.c3p0.max_statements">50</pro perty>

       
           
      <property name="transaction.factory_class">org.hibernate. transaction.JDBCTransactionFactory</property>
        <!--  thread is the short name for
          org.hibernate.context.ThreadLocalSessionContext
          and let Hibernate bind the session automatically to the thread
        -->
      <property name="current_session_context_class">thread< /property>
         <!-- this will show us all sql statements -->
      <property name="hibernate.show_sql">true</property>      
         <!-- Mapping files -->
      <mapping resource="contact.hbm.xml"/>
</session-factory>
</hibernate-configuration>

Después de hacer esto, arranqué mi servidor JBoss y ejecuté un update a un registro de mi base de datos, y en la consola por parte de c3p0 obtuve lo siguiente:

10:45:36,281 INFO [STDOUT] 10:45:36,281 INFO [C3P0ConnectionProvider] C3P0 using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/data_base
10:45:36,281 INFO [STDOUT] 10:45:36,281 INFO [C3P0ConnectionProvider] Connection properties: {user=user, password=****}
10:45:36,281 INFO [STDOUT] 10:45:36,281 INFO [C3P0ConnectionProvider] autocommit mode: false
10:45:36,359 INFO [STDOUT] 10:45:36,359 INFO [SchemaUpdate] Running hbm2ddl schema update
10:45:36,359 INFO [STDOUT] 10:45:36,359 INFO [SchemaUpdate] fetching database metadata
10:45:36,359 ERROR [STDERR] Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@1f88f7b [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@15b7a9f [ acquireIncrement -> 1, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, idleConnectionTestPeriod -> 3, initialPoolSize -> 5, maxIdleTime -> 300, maxPoolSize -> 100, maxStatements -> 50, maxStatementsPerConnection -> 0, minPoolSize -> 5, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@1b8b79b [ description -> null, driverClass -> null, factoryClassLocation -> null, jdbcUrl -> jdbc:mysql://localhost:3306/data_base, properties -> {user=******, password=******} ] , preferredTestQuery -> null, propertyCycle -> 300, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, usesTraditionalReflectiveProxies -> false ] , factoryClassLocation -> null, numHelperThreads -> 3, poolOwnerIdentityToken -> 1f88f7b ]
10:45:36,406 INFO [STDOUT] 10:45:36,406 INFO [SchemaUpdate] updating schema

 

Como verán, marca un error al momento de inicializar el pool de c3p0, así que no sé si realmente lo estoy usando y si con esas líneas que agregué al archivo config de hibernate es suficiente para implementarlo correctamente.

En algunas páginas de la web he visto que manejan c3p0 pero lo hacen a través de clases Java, y en otras dicen que se debería implementar en el servidor JBoss. La verdad es que estoy lleno de dudas sobre cómo usarlo, así que humildemente pido la ayuda de cualquiera de ustedes que tenga los conocimientos y que guste en ayudarme y decirme qué estoy haciendo mal o qué me hace falta de hacer.

De antemano gracias a todos. Saludos cordiales, bye!!!

#unapprove_message#
#thread_expired#.
Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano