I appreciate your responses, but I'm afraid I don't know what a blocking
entropy is.  Also, I don't appear to have any issues in resolving or
referencing DTDs during building.

I had posted another email indicating some more behavior, basically that
the delay occurs only when a new WAR file is deployed.  If the WAR file
doesn't change, I can re-deploy it without any delays.

In addition, I grabbed some thread dumps during the delay.  But I don't
know enough to know what to look for.  I compared two of the thread
dumps taken one-minute apart.  The only two differences in the files are
the timestamp at the top and the JNI global references count at the
bottom (the earlier dump showed 921, the later, 959).
Here is the earlier thread dump.  Again, any help is greatly
appreciated:

--------------------------------------------------->8-------------------
------------------------------------------
2009-10-06 19:44:47
Full thread dump Java HotSpot(TM) Client VM (11.2-b01 mixed mode,
sharing):

"Low Memory Detector" daemon prio=6 tid=0x02c41800 nid=0xae0 runnable
[0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"CompilerThread0" daemon prio=10 tid=0x02c3bc00 nid=0x490 waiting on
condition [0x00000000..0x02eef9bc]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Attach Listener" daemon prio=10 tid=0x02c3a400 nid=0xd2c waiting on
condition [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Signal Dispatcher" daemon prio=10 tid=0x02c39000 nid=0xc18 runnable
[0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Finalizer" daemon prio=8 tid=0x02c30c00 nid=0x99c in Object.wait()
[0x02dff000..0x02dffa94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x088f0288> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x088f0288> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at
java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

   Locked ownable synchronizers:
        - None

"Reference Handler" daemon prio=10 tid=0x02c2f800 nid=0x9ec in
Object.wait() [0x02daf000..0x02dafb14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x088f0310> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at
java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x088f0310> (a java.lang.ref.Reference$Lock)

   Locked ownable synchronizers:
        - None

"main" prio=6 tid=0x002a7000 nid=0xd5c runnable [0x0090f000..0x0090fe54]
   java.lang.Thread.State: RUNNABLE
        at java.io.FileOutputStream.close0(Native Method)
        at java.io.FileOutputStream.close(FileOutputStream.java:279)
        at java.io.FilterOutputStream.close(FilterOutputStream.java:143)
        at
org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:324)
        at
org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:158)
        at
org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:
883)
        at
org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:1012)
        at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.j
ava:279)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSu
pport.java:117)
        at
org.apache.catalina.core.StandardContext.init(StandardContext.java:5338)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4086
)
        - locked <0x088f0710> (a
org.apache.catalina.core.StandardContext)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.ja
va:791)
        - locked <0x088f08a0> (a java.util.HashMap)
        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
        at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
        at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
        at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:31
1)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSu
pport.java:117)
        at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        - locked <0x088f0500> (a org.apache.catalina.core.StandardHost)
        at
org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        - locked <0x088f0500> (a org.apache.catalina.core.StandardHost)
        at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        - locked <0x088f0a08> (a
org.apache.catalina.core.StandardEngine)
        at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
        - locked <0x088f0a08> (a
org.apache.catalina.core.StandardEngine)
        at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        - locked <0x088f0ae0> (a [Lorg.apache.catalina.Service;)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

   Locked ownable synchronizers:
        - None

"VM Thread" prio=10 tid=0x02c2e000 nid=0xfa8 runnable 

"VM Periodic Task Thread" prio=10 tid=0x02c4bc00 nid=0x5cc waiting on
condition 

JNI global references: 921
--------------------------------------------------->8-------------------
------------------------------------------

-----Original Message-----
From: Christopher Schultz [mailto:ch...@christopherschultz.net] 
Sent: Wednesday, October 07, 2009 5:16 PM
To: Tomcat Users List
Subject: Re: Tomcat hangs for minutes between ContextConfig and
StandardContext (Starting the app)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Rainer,

On 10/6/2009 2:00 PM, Rainer Jung wrote:
> On 06.10.2009 17:41, Christopher Schultz wrote:
> 
>> Another possibility is that SecureRandom is taking forever to
>> initialize: if your JVM is configured to use a blocking source of 
>> entropy, that may be the problem. This often happens in *NIX 
>> environments, but it appears that you are running on Microsoft 
>> Windows, so that's unlikely to be the problem.
> 
> ... and should only be a problem if SSL is involved.

Doesn't Tomcat use SecureRandom for session id generation, at least
under certain configurations? This would trip over a blocking entropy
source regardless of SSL configuration, right?

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrNBQMACgkQ9CaO5/Lv0PC5igCgjVbDsu74+cKSGW4geTCezF9r
fE0An2X4LgJg8/jpkSV+Vgn+yjqdTpF/
=+3Ms
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to