Copy and pasted from appengine.google.com logs
App Initialization starts here. I use Spring.
I 01-04 10:19PM 01.999 javax.servlet.ServletContext log: Initializing
Spring root WebApplicationContext
I 01-04 10:19PM 02.002 org.springframework.web.context.ContextLoader
initWebApplicationContext: Root WebApplicationContext: initialization
started
I 01-04 10:19PM 02.207
org.springframework.context.support.AbstractApplicationContext
prepareRefresh: Refreshing Root WebApplicationContext: startup date
[Tue Jan 05 06:19:0
I 01-04 10:19PM 02.472
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions: Loading XML bean definitions from class path
resource [spring.xml]
I 01-04 10:19PM 05.711
org.springframework.beans.factory.support.DefaultListableBeanFactory
preInstantiateSingletons: Pre-instantiating singletons in
org.springframework.bea
I 01-04 10:19PM 05.752 com.thomasgermano.util.Version init: Current
Google app engine version 1.3.0
At this point, all of my beans are instantiated. It took about 3.7
seconds (a bit long I know… but that is purely my fault).
Datanucleus starts up now (I make a call to
Persistence.createEntityManagerFactory("transactions-optional")).
I 01-04 10:19PM 06.482 org.datanucleus.plugin.NonManagedPluginRegistry
resolveConstraints: Bundle "org.datanucleus.jpa" has an optional
dependency to "org.datanucleus.enhanc
I 01-04 10:19PM 06.482 org.datanucleus.plugin.NonManagedPluginRegistry
resolveConstraints: Bundle "org.datanucleus" has an optional
dependency to "org.eclipse.equinox.regist
I 01-04 10:19PM 06.483 org.datanucleus.plugin.NonManagedPluginRegistry
resolveConstraints: Bundle "org.datanucleus" has an optional
dependency to "org.eclipse.core.runtime"
I 01-04 10:19PM 07.193 org.datanucleus.plugin.NonManagedPluginRegistry
resolveConstraints: Bundle "org.datanucleus.jpa" has an optional
dependency to "org.datanucleus.enhanc
I 01-04 10:19PM 07.194 org.datanucleus.plugin.NonManagedPluginRegistry
resolveConstraints: Bundle "org.datanucleus" has an optional
dependency to "org.eclipse.equinox.regist
I 01-04 10:19PM 07.194 org.datanucleus.plugin.NonManagedPluginRegistry
resolveConstraints: Bundle "org.datanucleus" has an optional
dependency to "org.eclipse.core.runtime"
I 01-04 10:19PM 07.289 org.datanucleus.PersistenceConfiguration
setProperty: Property datanucleus.rdbms.sql.allowAllSQLStatements
unknown - will be ignored
I 01-04 10:19PM 07.293 org.datanucleus.PersistenceConfiguration
setProperty: Property datanucleus.rdbms.query.containsUsesExistsAlways
unknown - will be ignored
I 01-04 10:19PM 07.293 org.datanucleus.PersistenceConfiguration
setProperty: Property datanucleus.rdbms.stringDefaultLength unknown -
will be ignored
I 01-04 10:19PM 07.302 org.datanucleus.PersistenceConfiguration
setProperty: Property datanucleus.appengine.autoCreateDatastoreTxns
unknown - will be ignored
I 01-04 10:19PM 07.309 org.datanucleus.ObjectManagerFactoryImpl
logConfiguration: ================= Persistence Configuration
===============
I 01-04 10:19PM 07.317 org.datanucleus.ObjectManagerFactoryImpl
logConfiguration: DataNucleus Persistence Factory - Vendor:
"DataNucleus" Version: "1.1.5"
I 01-04 10:19PM 07.317 org.datanucleus.ObjectManagerFactoryImpl
logConfiguration: DataNucleus Persistence Factory initialised for
datastore URL="appengine" driver="" userNam
I 01-04 10:19PM 07.318 org.datanucleus.ObjectManagerFactoryImpl
logConfiguration:
===========================================================
I 01-04 10:19PM 07.391 org.datanucleus.PersistenceConfiguration
setProperty: Property datanucleus.query.cached unknown - will be
ignored
I 01-04 10:19PM 08.570
org.datanucleus.jpa.metadata.JPAAnnotationReader
processClassAnnotations: Class "com.thomasgermano.db.Painting" has
been specified with JPA annotation
I 01-04 10:19PM 10.244
org.datanucleus.jpa.metadata.JPAAnnotationReader
processClassAnnotations: Class "com.thomasgermano.db.Category" has
been specified with JPA annotation
I 01-04 10:19PM 10.714
org.datanucleus.jpa.metadata.JPAAnnotationReader
processClassAnnotations: Class "com.thomasgermano.db.User" has been
specified with JPA annotations so
I 01-04 10:19PM 10.984
org.datanucleus.jpa.metadata.JPAAnnotationReader
processClassAnnotations: Class "com.thomasgermano.db.Image" has been
specified with JPA annotations s
I 01-04 10:19PM 11.013
org.datanucleus.jpa.metadata.JPAAnnotationReader
processClassAnnotations: Class "com.thomasgermano.db.Info" has been
specified with JPA annotations so
Datanucleus finished. All cycles from 06.482 until 11.013 are
datanucleus. Thats over 5 seconds to initialize 5 persistent classes.
I 01-04 10:19PM 11.480 org.springframework.web.context.ContextLoader
initWebApplicationContext: Root WebApplicationContext: initialization
completed in 9478 ms
Spring says all beans are done
I 01-04 10:19PM 12.628 org.apache.struts.tiles.TilesPlugin
initDefinitionsFactory: Tiles definition factory loaded for module ''.
I 01-04 10:19PM 12.631 com.thomasgermano.StrutsInitPlugin init: init()
App is up. Total time is over 10.5 seconds. That is an un-happy
user :( And since GAE shuts down the servlet after 10 minutes of
inactivity, this can be painful.
On Jan 6, 1:50 pm, datanucleus <[email protected]> wrote:
> > But to be even more pro-active, is there a way we can tell it what
> > bundles to load? So it can skip all the jar searching? Especially
> > since it does enhancement before hand, it should write out a manifest
> > of exactly which classes need to have metadata constructed. _or_
> > (haha) the metadata could be pre-built as well.
>
> The plugin registry is for registering *plugins* (for DataNucleus - of
> which GAE/J provides one - as per an OSGi plugin mechanism), not for
> what classes are being persisted. There is (currently) no way of
> defining which jars are "scanned" - classpath "getResource()" calls.
> In traditional systems nobody in their right mind would want to
> restart an app continually.
>
> But rather than even think about such things, why not demonstrate it
> with facts. The log tells you timings, for plugin loading, and then
> for loading metadata, and other things.
--
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.