|
From: Christian M. <chr...@ta...> - 2013-03-05 06:56:51
|
Hi Victor, sorry I forgot to mention that if you can't use the port range approach, please use property wrapper.restart.delay and set it to a value of 4 minutes or larger, for instance: wrapper.restart.delay=240 This way the Wrapper will always wait with the restart until the system freed the port. Best Regards, Christian On Tue, Mar 5, 2013 at 3:50 PM, Christian Mueller < chr...@ta...> wrote: > Hi Victor, > > none. The Wrapper will always terminate the JVM eventually. So your > problem is rather a problem with your system, or how TCP/IP ports are > working. > > I think what are you seeing is that your application is binding a socket > at a certain port (port C) and to establish to create a connection to > another port (port S). > So when your application is now being stopped forcibly by the Wrapper (or > a crash or anything causing the application to stop immediately), then the > system is leaving port C for a defined period of time in state TIME_WAIT, > which is around 1 - 4 minutes and then after this period the system is > going to free the port. > As long as the port is in TIME_WAIT, it can't be reused. The TIME_WAIT > period is usually twice the max packet lifetime, this protects actually > your client socket from receiving data from the previous connection. > > I would recommend to rather use a port range for your client port, so even > if your first attempt to bind fails, you can try the next one etc, one > eventually works. > > Please let me know if you have any further questions. > > Thank you, > > Christian Mueller > Tanuki Software, Ltd. > > > > > > On Mon, Mar 4, 2013 at 10:27 PM, ויקטור ר <har...@wa...> wrote: > > > > > > Hi all > > > > It seems to me that sometimes the JVM doesnt get terminated during the > restart for us. > > > > > > We use Wrapper Professional Edition 64-bit 3.3.9 for our project > (Windows OS) and sometimes we see the following in our logs: > > > > > > wrapper | JVM requested a restart..... > > wrapper | Shutdown failed: Timed out waiting for the JVM to terminate. > > wrapper | Dumping JVM state. > > wrapper | JVM did not exit on request, terminated > > wrapper | Reloading Wrapper configuration... > > wrapperp | port 1777 already in use, using port 32001 instead. > > wrapper | Launching a JVM... > > jvm 2 | -XX:+CMSClassUnloadingEnabled -XX:+CMSIncrementalMode > -XX:CompileCommand=exclude,jregex/Pretokenizer,next > -XX:+HeapDumpOnOutOfMemoryError -XX:InitialHeapSize=536870912 > -XX:+ManagementServer -XX:MaxGCPauseMillis=250 -XX:MaxHeapSize=1073741824 > -XX:MaxPermSize=201326592 -XX:MaxTenuringThreshold=6 -XX:NewRatio=2 > -XX:OldPLABSize=16 -XX:PermSize=134217728 -XX:+PrintCommandLineFlags > -XX:+UseAdaptiveGCBoundary -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC > -XX:-UseLargePagesIndividualAllocation -XX:+UseParNewGC > > jvm 2 | CompilerOracle: exclude jregex/Pretokenizer.next > > jvm 2 | WrapperManager: Initializing... > > jvm 2 | Starting the Probe ... > > > > After that we have some application specific exception because some RMI > that we use is not free because it seems like the previous instance of our > application is still alive. > > Are there cases when the wrapper reports that it terminates the JVM but > it isnt? > > > > Thanks in advance > > Victor > > > > ________________________________ > > Walla! Mail - Get your free unlimited mail today > > > > � > > > > ________________________________ > > Walla! Mail - Get your free unlimited mail today > > > ------------------------------------------------------------------------------ > > Everyone hates slow websites. So do we. > > Make your web apps faster with AppDynamics > > Download AppDynamics Lite for free today: > > http://p.sf.net/sfu/appdyn_d2d_feb > > _______________________________________________ > > Wrapper-user mailing list > > Wra...@li... > > https://lists.sourceforge.net/lists/listinfo/wrapper-user > > > |