-->
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: Problems to fully use Weblogic Pooled JDBC Connections
PostPosted: Tue Dec 18, 2007 1:46 pm 
Newbie

Joined: Tue Dec 18, 2007 12:36 pm
Posts: 1
Hi,
we have a servlet retrieving some data from the database, but our database administrator has informed us that we are using only one database connection instead of all the ones available in the pool. This was found during stress tests.

We have performed a small test obtaining connections directly from the datasource and we managed to use all the available connections under stress test, however, as soon as we change to hibernate, only one is used.

We might have made a mistake in the configuration, or are inadvertently ommiting something.

Here are our environment settings:
Hibernate version: 3.2.1
Application Server: Weblogig 8.1 sp5
Database: Oracle 10g R2

Here is a simplyfied version of our servlet:
Code between sessionFactory.openSession() and session.close():

Code:
 
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
  session.beginTransaction();
  List result = session.createQuery("from Book").list();
  session.getTransaction().commit();


The code to get the session is (taken from the tutorial):
Code:
public class HibernateUtil {
    private static final SessionFactory sessionFactory;
    static {
        try {
            Configuration configure = new Configuration().configure();
            sessionFactory = configure.buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}


The generated SQL (show_sql=true):
Hibernate: select book0_.CODIGO as CODIGO0_, book0_.TITULO as TITULO0_, book0_.STOCK as STOCK0_, book0_.PRECIO as PRECIO0_ from LIBROS book0_

The SQL used to look for active connections:
Code:
Select username, sid, status, last_call_et from v$session where username='MY_SID' order by last_call_et, sid


The simplyfied hibernate.config.xml:
Code:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory name="hibernate.session-factory.Oracle">
        <!-- Database connection settings-->
        <property name="show_sql">true</property>
        <property name="connection.datasource">Cosmos2DDataSourceDES</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>
        <mapping resource="Book.hbm.xml"/>
    </session-factory>
</hibernate-configuration>


And finally the log we get one invoking the code for the first time (when hibernate is configured)
Code:
2007/12/18 18:08:48,144 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Hibernate 3.2.1 org.hibernate.cfg.Environment.<clinit>(Environment.java:500)
2007/12/18 18:08:48,191 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] hibernate.properties not found org.hibernate.cfg.Environment.<clinit>(Environment.java:533)
2007/12/18 18:08:48,201 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Bytecode provider name : cglib org.hibernate.cfg.Environment.buildBytecodeProvider(Environment.java:667)
2007/12/18 18:08:48,218 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] using JDK 1.4 java.sql.Timestamp handling org.hibernate.cfg.Environment.<clinit>(Environment.java:584)
2007/12/18 18:08:48,754 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] configuring from resource: /hibernate.cfg.xml org.hibernate.cfg.Configuration.configure(Configuration.java:1423)
2007/12/18 18:08:48,756 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Configuration resource: /hibernate.cfg.xml org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1400)
2007/12/18 18:08:49,182 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Reading mappings from resource : Book.hbm.xml org.hibernate.cfg.Configuration.addResource(Configuration.java:553)
2007/12/18 18:08:49,618 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Mapping class: com.atosorigin.movistar.cosmosmib.servlet.Book -> LIBROS org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:300)
2007/12/18 18:08:50,148 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Configured SessionFactory: null org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1538)
2007/12/18 18:08:50,652 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] JNDI InitialContext properties:{} org.hibernate.util.NamingHelper.getInitialContext(NamingHelper.java:26)
2007/12/18 18:08:50,688 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Using datasource: Cosmos2DDataSourceDES org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:61)
2007/12/18 18:08:51,573 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] RDBMS: Oracle, version: 10.2.0.2.0 org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:81)
2007/12/18 18:08:51,583 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] JDBC driver: Oracle, version: 3.40.63 (012751.007229.008250) org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:82)
2007/12/18 18:08:51,810 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Using dialect: org.hibernate.dialect.Oracle9Dialect org.hibernate.dialect.Dialect.<init>(Dialect.java:151)
2007/12/18 18:08:51,859 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Using default transaction strategy (direct JDBC transactions) org.hibernate.transaction.TransactionFactoryFactory.buildTransactionFactory(TransactionFactoryFactory.java:31)
2007/12/18 18:08:51,881 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) org.hibernate.transaction.TransactionManagerLookupFactory.getTransactionManagerLookup(TransactionManagerLookupFactory.java:33)
2007/12/18 18:08:51,882 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Automatic flush during beforeCompletion(): disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:134)
2007/12/18 18:08:51,884 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Automatic session close at end of transaction: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:138)
2007/12/18 18:08:51,885 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] JDBC batch size: 15 org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:145)
2007/12/18 18:08:51,886 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] JDBC batch updates for versioned data: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:148)
2007/12/18 18:08:51,900 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Scrollable result sets: enabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:153)
2007/12/18 18:08:51,901 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] JDBC3 getGeneratedKeys(): disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:161)
2007/12/18 18:08:51,903 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Connection release mode: auto org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:169)
2007/12/18 18:08:51,911 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Default batch fetch size: 1 org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:196)
2007/12/18 18:08:51,913 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Generate SQL with comments: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:200)
2007/12/18 18:08:51,914 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Order SQL updates by primary key: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:204)
2007/12/18 18:08:51,915 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory org.hibernate.cfg.SettingsFactory.createQueryTranslatorFactory(SettingsFactory.java:369)
2007/12/18 18:08:51,930 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Using ASTQueryTranslatorFactory org.hibernate.hql.ast.ASTQueryTranslatorFactory.<init>(ASTQueryTranslatorFactory.java:24)
2007/12/18 18:08:51,932 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Query language substitutions: {} org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:212)
2007/12/18 18:08:51,933 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] JPA-QL strict compliance: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:217)
2007/12/18 18:08:51,935 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Second-level cache: enabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:222)
2007/12/18 18:08:51,936 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Query cache: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:226)
2007/12/18 18:08:51,937 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Cache provider: org.hibernate.cache.NoCacheProvider org.hibernate.cfg.SettingsFactory.createCacheProvider(SettingsFactory.java:356)
2007/12/18 18:08:51,939 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Optimize cache for minimal puts: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:241)
2007/12/18 18:08:51,940 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Structured second-level cache entries: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:250)
2007/12/18 18:08:51,968 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Echoing all SQL to stdout org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:270)
2007/12/18 18:08:51,970 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Statistics: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:277)
2007/12/18 18:08:51,971 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Deleted entity synthetic identifier rollback: disabled org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:281)
2007/12/18 18:08:51,972 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Default entity-mode: pojo org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:296)
2007/12/18 18:08:52,140 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] building session factory org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:161)
2007/12/18 16:00:29,270 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] building session factory org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:161)
2007/12/18 16:00:32,447 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Factory name: hibernate.session-factory.Oracle org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:86)
2007/12/18 16:00:32,448 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] JNDI InitialContext properties:{java.naming.provider.url=t3://localhost:7011, java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory} org.hibernate.util.NamingHelper.getInitialContext(NamingHelper.java:26)
2007/12/18 16:00:32,820 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Creating subcontext: hibernate org.hibernate.util.NamingHelper.bind(NamingHelper.java:68)
2007/12/18 16:00:32,852 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Creating subcontext: session-factory org.hibernate.util.NamingHelper.bind(NamingHelper.java:68)
2007/12/18 16:00:32,857 INFO  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] Bound factory to JNDI name: hibernate.session-factory.Oracle org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:91)
2007/12/18 16:00:32,859 WARN  [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] InitialContext did not implement EventContext org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:101)



Thanks for the time and support,

Javier


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.