0
目前对我的应用程序使用Tomcat 6和hibernate 3,但我注意到启动速度很慢,我只映射了大约40个实体。不知道这是Hibernate导致日志如下:由于休眠状态,Tomcat慢启动
需要大约5分钟为以下:
任何想法?顺便说一句我已经尝试增加tomcat的内存
2016-03-01 09:18:53,933 INFO [main] SessionFactoryObjectFactory.addInstance(105) | Not binding factory to JNDI, no JNDI name configured
2016-03-01 09:24:42,046 DEBUG [main] GnrlLookupView.<clinit>(37) | Registering view: GnrlLookupView
2016-03-01 09:24:46,881 INFO [main] QuartzScheduler.<init>(209) | Quartz Scheduler v.1.6.0 created.
Hibernate的配置:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource"> <ref bean="dataSource" /> </property>
<property name="mappingJarLocations">
<list>
<value>WEB-INF/lib/*-hbm.jar</value>
</list>
</property>
<property name="lobHandler">
<bean class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<bean class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor" />
</property>
</bean>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.connection.SetBigStringTryClob">true</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop> <!-- Explicitly enabled 2nd level cache since upgrade to hibernate version 3.2.x -->
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
</props>
</property>
<property name="entityInterceptor">
<ref bean="entityAuditInterceptor" />
</property>
</bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>ref bean="entityAuditInterceptor" />
</property>
</bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
更新:我已经启用了更精细的记录,来到下方,它打印出下面的5分钟,任何想法?
SessionFactoryUtils.doGetSession(316) | Opening Hibernate Session
2016-03-01 10:46:45,468 DEBUG [main] OracleLobHandler.getClobAsString(229) | Returning Oracle CLOB as string
2016-03-01 10:46:45,468 DEBUG [main] OracleLobHandler.getClobAsString(229) | Returning Oracle CLOB as string
2016-03-01 10:46:45,468 DEBUG [main] OracleLobHandler.getClobAsString(229) | Returning Oracle CLOB as string
2016-03-01 10:46:45,483 DEBUG [main] OracleLobHandler.getClobAsString(229) | Returning Oracle CLOB as string
2016-03-01 10:46:45,483 DEBUG [main] OracleLobHandler.getClobAsString(229) | Returning Oracle CLOB as string
2016-03-01 10:46:45,483 DEBUG [main] OracleLobHandler.getClobAsString(229) | Returning Oracle CLOB as string
2016-03-01 10:44:43,487 DEBUG [main] HibernateTemplate.flushIfNecessary(389) | Eagerly flushing Hibernate session
2016-03-01 10:44:43,487 DEBUG [main] SessionFactoryUtils.closeSession(789) | Closing Hibernate Session
2016-03-01 10:44:43,487 DEBUG [main] SessionFactoryUtils.doGetSession(316) | Opening Hibernate Session
是否为所有软件包(*)启用了调试日志记录?如果是的话,也许尝试重新运行跟踪记录的整个事情,也许它会揭示'SessionFactoryObjectFactory.addInstance(105)'和'GnrlLookupView之间的5-6分钟内发生了什么。(37)'。 –
您使用的是什么版本的Java?你分配了多少内存?你有多少物理内存? – pczeus
使用java 1.6,这是我在启动时的配置:-server -Xms3072m -Xmx3072m -XX:NewSize = 1024m -XX:MaxNewSize = 1024m -XX:PermSize = 1024m -XX:MaxPermSize = 1024m -XX:+ DisableExplicitGC – mel3kings