RoboHelp Server 9 Crashes Periodically
I am using RoboHelp Server 9 to allow users of RoboHelp HTML v9 to publish too. There has been nothing but problems with the server component since the beginning of time. Basically all functionallity of the server works as described except for the fact it crashs periodically throughout the day. Below I will describe with detailed explination of my setup here...
Also, the problems only appears during the day when load on the server is greater than in the evening. The server will run all night without load just fine, but in the morning 45 minutes into the day it goes unresponsive... 😞
Operating System Specifications:
Windows 2008 Server R2 64bit
16GB Memory
Java v1.6.0_37 64bit
Tomcat v7 64bit
Oracle Database Enterprise 64bit
Adobe RoboHelp Server 64bit
Tomcat server seems to run OK for 60-90 minutes and then starts to hang and become unresponsive. After a lot of stopping and starting the Tomcat service for weeks I started to use JConsole to monitor the Tomcat service. It seems that the problem is geared around the fact that the Java processes spawn numerous threads over time and does properly kill them off after usage (see graph below).

If you look at any of the randomly spawned threads its current state is the following...
Name: http-bio-80-exec-305
State: WAITING on java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync@72a0009d
Total blocked: 0 Total waited: 1
Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(Unknown Source)
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(Unknown Source)
adobe.robohelp.server.BrowserPool.getBrowser(BrowserPool.java:798)
adobe.robohelp.server.ServerData.getBrowser(ServerData.java:294)
adobe.robohelp.server.RoboHelpServer.doGet(RoboHelpServer.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
- locked org.apache.tomcat.util.net.SocketWrapper@7c5cf550
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
Google turns up some information about 'java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync' problems. The general consensus is to use '-XX:+UseMembar' as a runtime argument. I tried this and didnt notice any improvement. 😞
Another thing I tried was to increase the size of the maxThreads to 400 and 500 respectively. Seeing no change in performance with either setting.
Looking in the logs after a given crash produces NO EXCEPTIONS or other informational error relating to why it crashed.
Whats really got me confused is why the entire Tomcat service becomes unresponsive and not just the RoboHelp contexts in particualr?
----------------------
Just so we are clear and I don't want people to chasing a Tomcat v7 only issue, but I have tried the exact same setup with Tomcat v6 and expierence the same types of crashes throughout the day.
Any help or suggestions will be appreiceated!!!
