2016-04-05 6 views
0

Entwickeln von Webdiensten mit Spring, Hibernate und Jersey parallel zu einer vorhandenen Anwendung. Anfangs verwendete ich weniger als 20 Entity-Klassen und der Server brauchte weniger als 45 Sekunden zum Starten. Jetzt habe ich alle 191 Entity-Klassen hinzugefügt, die ich später brauchen werde. Nach dem Hinzufügen von diesen dauert meine Anwendung fast 7 Minuten, um zu beginnen. Übrigens benutze ich Tomcat 7 als meinen Server.Lange Verzögerung beim Starten des Servers

In logs kann ich sehen, viele

o.h.ejb.packaging.AbstractJarVisitor - Filtering:............ 

o.h.cfg.annotations.CollectionBinder - Collection role:....... 
o.h.cfg.annotations.PropertyBinder - Building property....... 
org.hibernate.cfg.Ejb3Column - Binding column: Ejb3JoinColumn{.... 
org.hibernate.cfg.Ejb3Column - Binding column: Ejb3Column{table..... 

o.h.c.annotations.SimpleValueBinder - Setting SimpleValue typeName for ..... 

o.hibernate.cfg.CollectionSecondPass - Second pass for collection:...... 
o.h.cfg.annotations.CollectionBinder - Binding a OneToMany: ..... 
o.h.cfg.annotations.CollectionBinder - Mapping collection: ..... 
o.h.cfg.annotations.TableBinder - Retrieving property ...... 

org.hibernate.cfg.Configuration - Resolving reference to class: ..... 

o.h.c.e.AbstractEhcacheRegionFactory - HHH020003: Could not find a specific ehcache configuration for cache named [.....]; using defaults. 
net.sf.ehcache.Cache - Initialised cache: ..... 
n.s.e.config.ConfigurationHelper - CacheDecoratorFactory not configured for defaultCache. Skipping for '..... 
o.h.c.e.AbstractEhcacheRegionFactory - started EHCache region:.... 
o.h.p.entity.AbstractEntityPersister - Static SQL for entity:..... 
o.h.p.entity.AbstractEntityPersister - Version select: ..... 
o.h.p.entity.AbstractEntityPersister - Snapshot select:.... 
o.h.p.entity.AbstractEntityPersister - Insert 0: ..... 
o.h.p.entity.AbstractEntityPersister - Update 0: .... 
o.h.p.entity.AbstractEntityPersister - Delete 0: .... 

o.h.p.c.AbstractCollectionPersister - Static SQL for collection:..... 
o.h.p.c.AbstractCollectionPersister - Row insert: ..... 
o.h.p.c.AbstractCollectionPersister - Row update: ..... 
o.h.p.c.AbstractCollectionPersister - Row delete: ..... 
o.h.p.c.AbstractCollectionPersister - One-shot delete: .... 

beobachtete ich die folgende nimmt viel Zeit

org.hibernate.loader.Loader - Static select for entity ... [NONE]: ... 
org.hibernate.loader.Loader - Static select for entity ... [READ]: ... 
org.hibernate.loader.Loader - Static select for entity ... [UPGRADE]: ... 
org.hibernate.loader.Loader - Static select for entity ... [UPGRADE_NOWAIT]: ... 
org.hibernate.loader.Loader - Static select for entity ... [FORCE]: ... 
org.hibernate.loader.Loader - Static select for entity ... [PESSIMISTIC_READ]: ... 
org.hibernate.loader.Loader - Static select for entity ... [PESSIMISTIC_WRITE]: ... 
org.hibernate.loader.Loader - Static select for entity ... [PESSIMISTIC_FORCE_INCREMENT]: ... 
org.hibernate.loader.Loader - Static select for entity ... [OPTIMISTIC]: ... 
org.hibernate.loader.Loader - Static select for entity ... [OPTIMISTIC_FORCE_INCREMENT]: ... 
org.hibernate.loader.Loader - Static select for action ACTION_MERGE on entity ... : ... 
org.hibernate.loader.Loader - Static select for action ACTION_REFRESH on entity ...: ... 

o.h.l.collection.OneToManyLoader - Static select for one-to-many 

Wie die Startzeit zu verbessern?

Hinweis: mit Spring-Version: 4.1.4.RELEASE, Hibernate Version: 4.2.7.Final

ich java Config bin mit und Sie können meine Java-Config bei spring + hibernate + c3p0 + ehcache java configuration sehen. Nicht mit separaten persistence.xml

+0

Mit Blick auf die Protokolle scheint es einige Löschungen, Updates und Einfügungen während des Starts zu geben. Wenn ja, können Sie Informationen darüber bereitstellen, was die App während des Startvorgangs tut? Auch die Veröffentlichung Ihrer Datei persistence.xml hilft möglicherweise. –

+0

Für Starter deaktivieren Sie die Protokollierung, da die Protokollierung langsam ist und wirklich den Start Ihrer Anwendung verlangsamt. –

+0

@MadhusudanaReddySunnapu Ich benutze Java Config und Sie können meine Java-Konfiguration unter http://StackOverflow.com/questions/36304458/spring-hibernate-c3p0-ehcache-java-configuration/36305748 sehen. Keine separate persistence.xml verwenden. Außerdem habe ich beim Start nichts konfiguriert. –

Antwort

0

Versuchen Addiert man diese Eigenschaften in Ihrem Persistenzeinheit Konfiguration innerhalb persistence.xml:

<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/> 

Es normalerweise beschleunigt Hibernate.

2016-04-14 Angehängt ein "s", um den Eigenschaftsnamen zu korrigieren.

+0

Bereits versucht, dass es keine Verbesserung gibt. Sie können meine Konfiguration unter http://stackoverflow.com/questions/36304458/spring-hibernate-c3p0-ehcache-java-configuration/36305748 sehen. –

+0

in additionalProperties-Methode Ich habe Code wie properties.setProperty hinzugefügt ("hibernate.temp.use_jdbc_metadata_defaults", "false"); –

+0

Verwenden Sie 'org.hibernate.jpa.HibernatePersistenceProvider' als Anbieter richtig? Veröffentlichen Sie auch Ihre Hibernate-Konfigurationsklasse/Datei –