5 Replies Latest reply: Mar 3, 2011 3:30 PM by PHCharbonneau RSS

    Weblogic 10.3.0 managed server + Spring Framework slow startup

    842924
      Hello

      Iam running weblogic 10.3.0 plus an application using spring framework on this:
      java.runtime.name = Java(TM) SE Runtime Environment
      java.runtime.version = 1.6.0_20-b02
      java.specification.name = Java Platform API Specification
      java.specification.vendor = Sun Microsystems Inc.
      java.specification.version = 1.6
      java.vendor = Oracle Corporation
      java.version = 1.6.0_20
      java.vm.info = compiled mode
      java.vm.name = Oracle JRockit(R)
      os.arch = amd64
      os.name = Windows 2003
      os.version = 5.2
      sun.arch.data.model = 64
      sun.io.unicode.encoding = UnicodeLittle
      sun.jnu.encoding = Cp1252
      sun.management.compiler = Oracle JRockit(R) Optimizing Compiler
      sun.os.patch.level = Service Pack 2

      Problem Description: A weblogic managed server is taking more than an hour to start, the delay is due to the deployments during startup, passing from STATE_PREPARED to STATE_ADMIN and to the initialization of the Spring root WebApplicationContex, which takes an avg of 7 mins per module deployed.

      I have a development server with the same application which starts in a few minutes, the only difference between the environments are tha the development server runs in 32bits.

      Any help will be appreciated

      -luis


      Server log file:
      ####<Feb 17, 2011 5:09:06 PM VET> <Info> <ServletContext-/Micropago/ServiciosOperacionTransferencia> <SAPL734> <micropago_server> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1297978746371> <BEA-000000> <Initializing Spring root WebApplicationContext>
      ####<Feb 17, 2011 5:19:16 PM VET> <Info> <Deployer> <SAPL734> <micropago_server> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1297979356364> <BEA-149059> <Module operaciondispatcher-ws-1.0-SNAPSHOT.war of application operaciondispatcher-ws-1 is transitioning from STATE_PREPARED to STATE_ADMIN on server micropago_server.>
      ####<Feb 17, 2011 5:19:16 PM VET> <Info> <Deployer> <SAPL734> <micropago_server> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1297979356411> <BEA-149060> <Module operaciondispatcher-ws-1.0-SNAPSHOT.war of application operaciondispatcher-ws-1 successfully transitioned from STATE_PREPARED to STATE_ADMIN on server micropago_server.>
      ####<Feb 17, 2011 5:19:24 PM VET> <Info> <ServletContext-/Micropago/ServiciosOperacionD> <SAPL734> <micropago_server> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1297979364083> <BEA-000000> <Initializing Spring root WebApplicationContext>
      ####<Feb 17, 2011 5:23:35 PM VET> <Info> <Deployer> <SAPL734> <micropago_server> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1297979615333> <BEA-149059> <Module operacionutil-ws-1.0-SNAPSHOT.war of application operacionutil-ws-1 is transitioning from STATE_PREPARED to STATE_ADMIN on server micropago_server.>
      ####<Feb 17, 2011 5:23:35 PM VET> <Info> <Deployer> <SAPL734> <micropago_server> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1297979615333> <BEA-149060> <Module operacionutil-ws-1.0-SNAPSHOT.war of application operacionutil-ws-1 successfully transitioned from STATE_PREPARED to STATE_ADMIN on server micropago_server.>
      ####<Feb 17, 2011 5:23:40 PM VET> <Info> <ServletContext-/Micropago/ServiciosUtilidad> <SAPL734> <micropago_server> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1297979620318> <BEA-000000> <Initializing Spring root WebApplicationContext>
      ####<Feb 17, 2011 5:30:10 PM VET> <Info> <Deployer> <SAPL734> <micropago_server> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1297980010468> <BEA-149059> <Module securitymanager-ws-1.0-SNAPSHOT.war of application securitymanager-ws-1 is transitioning from STATE_PREPARED to STATE_ADMIN on server micropago_server.>
      ####<Feb 17, 2011 5:30:10 PM VET> <Info> <Deployer> <SAPL734> <micropago_server> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1297980010515> <BEA-149060> <Module securitymanager-ws-1.0-SNAPSHOT.war of application securitymanager-ws-1 successfully transitioned from STATE_PREPARED to STATE_ADMIN on server micropago_server.>
        • 1. Re: Weblogic 10.3.0 managed server + Spring Framework slow startup
          PHCharbonneau
          Hi Luis,

          Please generate a few JVM Thread Dump snapshots of the Admin server Java process during start-up process and provide us with the Weblogic start-up Thread Stack Trace. It will show you where the deployment process is hanging / spending most of its time.

          Regards,
          P-H
          http://javaeesupportpatterns.blogspot.com/
          • 2. Re: Weblogic 10.3.0 managed server + Spring Framework slow startup
            842924
            Hi, thanks for your answer.

            How can I do a Thread Dump snapshot in a windows server starting as a service (no console)?

            Admin_server Thread Stack Trace

            Dump 1/3
            "Main Thread" waiting for lock weblogic.t3.srvr.T3Srvr@f14693 WAITING

                 java.lang.Object.wait(Native Method)

                 java.lang.Object.wait(Object.java:485)

                 weblogic.t3.srvr.T3Srvr.waitForDeath(T3Srvr.java:811)

                 weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:459)

                 weblogic.Server.main(Server.java:67)

            "(Signal Handler)" RUNNABLE

            null

            "(OC Main Thread)" RUNNABLE

            null

            "(Code Generation Thread 1)" RUNNABLE

            null

            "(Code Optimization Thread 1)" RUNNABLE

            null

            "(VM Periodic Task)" RUNNABLE

            null

            "(Attach Listener)" RUNNABLE

            null

            "Finalizer" RUNNABLE

                 jrockit.memory.Finalizer.waitForFinalizees(Native Method)

                 jrockit.memory.Finalizer.access$700(Finalizer.java:12)

                 jrockit.memory.Finalizer$4.run(Finalizer.java:189)

                 java.lang.Thread.run(Thread.java:619)

            "Reference Handler" RUNNABLE

                 java.lang.ref.Reference.waitForActivatedQueue(Native Method)

                 java.lang.ref.Reference.access$100(Reference.java:11)

                 java.lang.ref.Reference$ReferenceHandler.run(Reference.java:82)

            "(Sensor Event Thread)" RUNNABLE

            null

            "VM JFR Buffer Thread" RUNNABLE native

            null

            "Timer-0" waiting for lock java.util.TaskQueue@e259a7 WAITING

                 java.lang.Object.wait(Native Method)

                 java.lang.Object.wait(Object.java:485)

                 java.util.TimerThread.mainLoop(Timer.java:483)

                 java.util.TimerThread.run(Timer.java:462)

            "Timer-1" waiting for lock java.util.TaskQueue@10ad080 TIMED_WAITING

                 java.lang.Object.wait(Native Method)

                 java.util.TimerThread.mainLoop(Timer.java:509)

                 java.util.TimerThread.run(Timer.java:462)

            "[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" RUNNABLE

            DUMP 2/3

            "Main Thread" waiting for lock weblogic.t3.srvr.T3Srvr@f14693 WAITING

                 java.lang.Object.wait(Native Method)

                 java.lang.Object.wait(Object.java:485)

                 weblogic.t3.srvr.T3Srvr.waitForDeath(T3Srvr.java:811)

                 weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:459)

                 weblogic.Server.main(Server.java:67)

            "(Signal Handler)" RUNNABLE

            null

            "(OC Main Thread)" RUNNABLE

            null

            "(Code Generation Thread 1)" RUNNABLE

            null

            "(Code Optimization Thread 1)" RUNNABLE

            null

            "(VM Periodic Task)" RUNNABLE

            null

            "(Attach Listener)" RUNNABLE

            null

            "Finalizer" RUNNABLE

                 jrockit.memory.Finalizer.waitForFinalizees(Native Method)

                 jrockit.memory.Finalizer.access$700(Finalizer.java:12)

                 jrockit.memory.Finalizer$4.run(Finalizer.java:189)

                 java.lang.Thread.run(Thread.java:619)

            "Reference Handler" RUNNABLE

                 java.lang.ref.Reference.waitForActivatedQueue(Native Method)

                 java.lang.ref.Reference.access$100(Reference.java:11)

                 java.lang.ref.Reference$ReferenceHandler.run(Reference.java:82)

            "(Sensor Event Thread)" RUNNABLE

            null

            "VM JFR Buffer Thread" RUNNABLE native

            null

            "Timer-0" waiting for lock java.util.TaskQueue@e259a7 WAITING

                 java.lang.Object.wait(Native Method)

                 java.lang.Object.wait(Object.java:485)

                 java.util.TimerThread.mainLoop(Timer.java:483)

                 java.util.TimerThread.run(Timer.java:462)

            "Timer-1" waiting for lock java.util.TaskQueue@10ad080 TIMED_WAITING

                 java.lang.Object.wait(Native Method)

                 java.util.TimerThread.mainLoop(Timer.java:509)

                 java.util.TimerThread.run(Timer.java:462)

            "[STANDBY] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.work.ExecuteThread@10ad1bd WAITING

                 java.lang.Object.wait(Object.java:485)

                 weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:157)

                 weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

            "weblogic.time.TimeEventGenerator" waiting for lock weblogic.time.common.internal.TimeTable@10aff60 TIMED_WAITING

                 weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:286)

                 weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:117)

                 java.lang.Thread.run(Thread.java:619)

            "weblogic.timers.TimerThread" waiting for lock weblogic.timers.internal.TimerThread@11216cb TIMED_WAITING

                 java.lang.Object.wait(Native Method)

                 weblogic.timers.internal.TimerThread$Thread.run(TimerThread.java:267)

            "[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.work.ExecuteThread@10ad3e0 WAITING

                 java.lang.Object.wait(Object.java:485)

                 weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:157)

                 weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

            "Thread-7" waiting for lock java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@10ad595 WAITING

                 sun.misc.Unsafe.park(Native Method)

                 java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)

                 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)

                 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)

                 weblogic.utils.concurrent.JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89)

                 weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:567)

                 weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:615)

                 weblogic.store.internal.PersistentStoreImpl$2.run(PersistentStoreImpl.java:383)

            "ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" RUNNABLE native

                 weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)

                 weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:81)

                 weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)

                 weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)

                 weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)

                 weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

            "ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" RUNNABLE native

                 weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)

                 weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:81)

                 weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)

                 weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)

                 weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)

                 weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

            "ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" RUNNABLE native

                 weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)

                 weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:81)

                 weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)

                 weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)

                 weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)

                 weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

            "VDE Transaction Processor Thread" waiting for lock com.octetstring.vde.backend.standard.TransactionProcessor@10ad40f WAITING

                 java.lang.Object.wait(Native Method)

                 java.lang.Object.wait(Object.java:485)

                 com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:367)

                 com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:212)

            "VDE Replication Thread" waiting for lock com.octetstring.vde.replication.Replication@10ad426 TIMED_WAITING

                 com.octetstring.vde.replication.Replication.wait30sec(Replication.java:384)

                 com.octetstring.vde.replication.Replication.run(Replication.java:350)

            "DoSManager" TIMED_WAITING

                 java.lang.Thread.sleep(Native Method)

                 com.octetstring.vde.DoSManager.run(DoSManager.java:433)

            "Thread-11" waiting for lock java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4f576f WAITING

                 sun.misc.Unsafe.park(Native Method)

            DUMP 3/3

            "Main Thread" waiting for lock weblogic.t3.srvr.T3Srvr@f14693 WAITING

                 java.lang.Object.wait(Native Method)

                 java.lang.Object.wait(Object.java:485)

                 weblogic.t3.srvr.T3Srvr.waitForDeath(T3Srvr.java:811)

                 weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:459)

                 weblogic.Server.main(Server.java:67)

            "(Signal Handler)" RUNNABLE

            null

            "(OC Main Thread)" RUNNABLE

            null

            "(Code Generation Thread 1)" RUNNABLE

            null

            "(Code Optimization Thread 1)" RUNNABLE

            null

            "(VM Periodic Task)" RUNNABLE

            null

            "(Attach Listener)" RUNNABLE

            null

            "Finalizer" RUNNABLE

                 jrockit.memory.Finalizer.waitForFinalizees(Native Method)

                 jrockit.memory.Finalizer.access$700(Finalizer.java:12)

                 jrockit.memory.Finalizer$4.run(Finalizer.java:189)

                 java.lang.Thread.run(Thread.java:619)

            "Reference Handler" RUNNABLE

                 java.lang.ref.Reference.waitForActivatedQueue(Native Method)

                 java.lang.ref.Reference.access$100(Reference.java:11)

                 java.lang.ref.Reference$ReferenceHandler.run(Reference.java:82)

            "(Sensor Event Thread)" RUNNABLE

            null

            "VM JFR Buffer Thread" RUNNABLE native

            null

            "Timer-0" waiting for lock java.util.TaskQueue@e259a7 WAITING

                 java.lang.Object.wait(Native Method)

                 java.lang.Object.wait(Object.java:485)

                 java.util.TimerThread.mainLoop(Timer.java:483)

                 java.util.TimerThread.run(Timer.java:462)

            "Timer-1" waiting for lock java.util.TaskQueue@10ad080 TIMED_WAITING

                 java.lang.Object.wait(Native Method)

                 java.util.TimerThread.mainLoop(Timer.java:509)

                 java.util.TimerThread.run(Timer.java:462)

            "[STANDBY] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.work.ExecuteThread@10ad1bd WAITING

                 java.lang.Object.wait(Object.java:485)

                 weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:157)

                 weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

            "weblogic.time.TimeEventGenerator" waiting for lock weblogic.time.common.internal.TimeTable@10aff60 TIMED_WAITING

                 weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:286)

                 weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:117)

                 java.lang.Thread.run(Thread.java:619)

            "weblogic.timers.TimerThread" waiting for lock weblogic.timers.internal.TimerThread@11216cb TIMED_WAITING

                 java.lang.Object.wait(Native Method)

                 weblogic.timers.internal.TimerThread$Thread.run(TimerThread.java:267)

            "[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.work.ExecuteThread@10ad3e0 WAITING

                 java.lang.Object.wait(Object.java:485)

                 weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:157)

                 weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

            "Thread-7" waiting for lock java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@10ad595 WAITING

                 sun.misc.Unsafe.park(Native Method)

                 java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)

                 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)

                 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)

                 weblogic.utils.concurrent.JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89)

                 weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:567)

                 weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:615)

                 weblogic.store.internal.PersistentStoreImpl$2.run(PersistentStoreImpl.java:383)

            "ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" RUNNABLE native

                 weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)

                 weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:81)

                 weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)

                 weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)

                 weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)

                 weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

            "ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" RUNNABLE native

                 weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)

                 weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:81)

                 weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)

                 weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)

                 weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)

                 weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

            "ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" RUNNABLE native

                 weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)

                 weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:81)

                 weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)

                 weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)

                 weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)

                 weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

            "VDE Transaction Processor Thread" waiting for lock com.octetstring.vde.backend.standard.TransactionProcessor@10ad40f WAITING

                 java.lang.Object.wait(Native Method)

                 java.lang.Object.wait(Object.java:485)

                 com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:367)

                 com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:212)

            "VDE Replication Thread" waiting for lock com.octetstring.vde.replication.Replication@10ad426 TIMED_WAITING

                 com.octetstring.vde.replication.Replication.wait30sec(Replication.java:384)

                 com.octetstring.vde.replication.Replication.run(Replication.java:350)

            "DoSManager" TIMED_WAITING

                 java.lang.Thread.sleep(Native Method)

                 com.octetstring.vde.DoSManager.run(DoSManager.java:433)

            "Thread-11" waiting for lock java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4f576f WAITING

                 sun.misc.Unsafe.park(Native Method)
            • 3. Re: Weblogic 10.3.0 managed server + Spring Framework slow startup
              PHCharbonneau
              Hi Luis,

              Thread Dump is not showing any problem with your Admin server.

              I did double check your log and the managed server we are interesting in is <SAPL734> <micropago_server>

              Please generate again Thread Dump, but this time from this managed server and provide us with the "Main Thread" Stack Trace during slowdown condition.

              When server is starting as service and using JRockit JDK 1.6 VM, the easiest way to generate a Thread Dump:

              1)     Go to your JRockit JDK home folder .../bin folder
              2)     Execute the following command: jrcmd <Java pid of your managed server from Windows task manager> print_threads
              Ex: E:\beawlp103\jrockit_160_05\bin> jrcmd 4776 print_threads

              This will generate a Thread Dump from the JRockit VM hosting your managed server. The "Main Thread" is the one you are interested in.

              Regards,
              P-H
              • 4. Re: Weblogic 10.3.0 managed server + Spring Framework slow startup
                842924
                Hello

                I was unable to take the thread dumps. Iit throw this error:
                D:\bea\user_projects\domains\micropago_domain>jrcmd 2952 print_threads
                2952:
                2952: Not enough storage is available to process this command

                The problem was jvm heap memory, the server has 4Gb and the startup parameters were: Xms3g and Xmx3g, I cut the memory to 2g and now the managed server starts in 6mins (from 90mins before).

                Thanks for your help and support

                -luis
                • 5. Re: Weblogic 10.3.0 managed server + Spring Framework slow startup
                  PHCharbonneau
                  Hi Luis and thanks for detail on resolution,

                  Alright so this definitely explains since allocating 3G alone for your Java Heap from a 4G physical server on Windows was leaving very few native memory space left for C Heap and other Windows OS related services.

                  I still suggest you to monitor your currently physical RAM availability and ensure you are not using / relying too much on virtual memory / disk paging and adjust your Java Heap vs. native memory ratio further.

                  Regards,
                  P-H