Skip to main content
Participating Frequently
June 24, 2010
Question

RoboHelp Server 8 becomes unresponsive

  • June 24, 2010
  • 3 replies
  • 2922 views

I have tried contacting Adobe support 3 times on this issue.  Each time they tell me to send a screenshot and my logs.  I have sent them and they never receive them.  I have tried to FTP them this time but they said it will take 48 hours for a response.  Our server that becomes unresponsive is a production server so waiting 48 hours is not possible.  So, I am trying this Forum to see if anyone can help me.  We are using RoboHelp 8.  A few times a day, our help becomes unresponsive and we have to restart the TomCat service to get it responding again.  Here are the errors that are in our log files when the server stops responding.  Any help would be appreciated.

checking license


License Value: 1
Got Connection.
04.00.0000
Database Product Name : ACCESS
Driver Name : JDBC-ODBC Bridge (odbcjt32.dll)
Driver Version : 2.0001 (04.00.6305)
WARN. Unread 68 bytes of record 0x1b8
WARN. Unread 86 bytes of record 0x1b8
WARN. Unread 78 bytes of record 0x1b8
java.lang.NullPointerException
    at org.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:194)
    at org.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:182)
    at org.pdfbox.pdmodel.PDDocumentCatalog.getAllPages(PDDocumentCatalog.java:226)
    at org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:216)
    at adobe.robohelp.server.ExternalFileReader.getPDFText(ExternalFileReader.java:28)
    at adobe.robohelp.server.SearchProject.indexFiles(SearchProject.java:276)
    at adobe.robohelp.server.SearchProject.<init>(SearchProject.java:84)
    at adobe.robohelp.server.WebHelpSearch$WebSearchProject.<init>(WebHelpSearch.java:754)
    at adobe.robohelp.server.WebHelpSearch$WebSearchProjectList.<init>(WebHelpSearch.java:658)
    at adobe.robohelp.server.WebHelpSearch.refresh(WebHelpSearch.java:1116)
    at adobe.robohelp.server.SearchAgent.refresh(SearchAgent.java:91)
    at adobe.robohelp.server.AgentManager.refresh(AgentManager.java:68)
    at adobe.robohelp.server.HelpArea.refresh(HelpArea.java:48)
    at adobe.robohelp.server.AreaManager.refresh(AreaManager.java:129)
    at adobe.robohelp.server.RoboHelpServer.refresh(RoboHelpServer.java:66)
    at adobe.robohelp.server.RefreshServer.run(RefreshServer.java:94)
    at java.lang.Thread.run(Unknown Source)
WARN. Unread 84 bytes of record 0x1b8
WARN. Unread 66 bytes of record 0x1b8
WARN. Unread 86 bytes of record 0x1b8
WARN. Unread 68 bytes of record 0x1b8
java.lang.Throwable: Warning: You did not close the PDF Document
    at org.pdfbox.cos.COSDocument.finalize(COSDocument.java:418)
    at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
    at java.lang.ref.Finalizer.runFinalizer(Unknown Source)
    at java.lang.ref.Finalizer.access$100(Unknown Source)
    at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
WARN. Unread 122 bytes of record 0x1b8
WARN. Unread 96 bytes of record 0x1b8
WARN. Unread 26 bytes of record 0x1b8
WARN. Unread 120 bytes of record 0x1b8
WARN. Unread 122 bytes of record 0x1b8
WARN. Unread 6 bytes of record 0x1b8
java.lang.ArithmeticException: / by zero
    at adobe.robohelp.server.IndexCreatorJS.CreateHtmlChunk(IndexCreatorJS.java:217)
    at adobe.robohelp.server.IndexCreatorJS.CreateHTML(IndexCreatorJS.java:73)
    at adobe.robohelp.server.WHIndexAgent.doCommand(WHIndexAgent.java:74)
    at adobe.robohelp.server.IndexAgent.doCommand(IndexAgent.java:78)
    at adobe.robohelp.server.AgentManager.doCommand(AgentManager.java:84)
    at adobe.robohelp.server.HelpArea.doGet(HelpArea.java:83)
    at adobe.robohelp.server.AreaManager.doGet(AreaManager.java:79)
    at adobe.robohelp.server.RoboHelpServer.doGet(RoboHelpServer.java:149)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
    at adobe.robohelp.server.BrowserPool.getBrowser(BrowserPool.java:799)
    at adobe.robohelp.server.ServerData.getBrowser(ServerData.java:311)
    at adobe.robohelp.server.RoboHelpServer.doGet(RoboHelpServer.java:117)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
This topic has been closed for replies.

3 replies

jw1726354Author
Participating Frequently
June 30, 2010

Our server just stopped responding and I had to restart it.  Before I restarted it, I looked at the logs and the stdout_20100630.log file had this error over and over again in the log file.

java.lang.NullPointerException
    at adobe.robohelp.server.BrowserPool.getBrowser(BrowserPool.java:799)
    at adobe.robohelp.server.ServerData.getBrowser(ServerData.java:311)
    at adobe.robohelp.server.RoboHelpServer.doGet(RoboHelpServer.java:117)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)

The localhost.2010-06-30.log file had this error over and over again.

Jun 30, 2010 10:27:02 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
    at adobe.robohelp.server.ErrorFilter.doFilter(ErrorFilter.java:37)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)

tuls_garg
Inspiring
July 1, 2010

Hi Jen,

Thanks for sharing the latest logs. I received a mail from John with your latest logs and setup details. As per those details, your server becomes unresponsive when CSH is called from your .NET C# application.

Now I can clearly see from your logs why that should be happening. Actually RHS looks for a header named "User-Agent" in the request it receives. This header is supposed to contain information about the platform(browser/environment) from which the request has been sent.

In case of your CSH calls from your application, this header is empty and hence server is not able to parse this information. I would suggest you set this header in the HTTP requests you send from your .NET C# application (you can even keep this empty but it should be there).

Do let me know if you face any issues.

Tulika.

tuls_garg
Inspiring
July 1, 2010

Tulika,

I will try this but I am fairly confident it will not fix the problem because getting to Context Sensitive Help works fine. This has never been an issue.  Just a couple of times a day, the server stops responding regardless of if we are trying to get to Context Sensitive Help or to different projects or even trying to login to the RoboHelp Admin page.  How would we ever be able to set a User Agent to login to the admin page?


Hi Jen,

I can understand your concern here but that's the only error logged in the

logs. It could be when there are too many CSH requests without User-Agent

header, there are too many exceptions at server and that makes it

unresponsive even for requests through browser.

I hope heavy load is not an issue here because if that's the case we can

easily fix that using memory settings and increasing httpconnector in

Tomcat. By default Tomcat is configured to allow 250 http connections. This

is configurable in server.xml which is located in Tomcat's conf folder. You

can backup this file and then look for “Connector” tags in server.xml where

value of “protocol” attribute is "HTTP/1.1". If these tags don’t have

attribute maxThreads, add this attribute and set its value as 400. If the

attribute is already there, then increase it’s value.

Finally the tag should look like :

Connector protocol="HTTP/1.1" ….. maxThreads="400"..

This maxThreads attribute determines maximum number of concurrent http

sessions Tomcat can support so user should set it’s value as per expected

user load. But please note that this value cannot be set arbitrarily high

because it will also depend on number of threads your CPU can support.

Tulika.

Message was edited by: tuls.garg

tuls_garg
Inspiring
June 25, 2010

Hi jw1726354,

Besides the useful tips John has mentioned, you must try one more thing. Open your robohelp_server.properties file. It's located in "<RHS 8 InstallFolder>\WEB-INF" and change value of "reindex" property from "true" to "false". Then restart your Tomcat. I think that should resolve your issue.

Regards,

Tulika.

RoboHelp Server Team.

jw1726354Author
Participating Frequently
June 25, 2010

John/Tulika,

Thank you so much for your response.

I have had the "reindex" property set to false in the robohelp_server.properties file for quite a while now and that did not fix the problem

I have had the Initial Memory Pool and Max Memory Pool set to 256.  That did not fix the problem. 

I just changed it to only have the Max Memory pool set to 512.  We'll see if that makes a difference. 

When I tried to add the value -XX:MaxPermSize=512m, I was not able to restart Tomcat.  The error in the Event Viewer said

The Apache Tomcat 6 service terminated with service-specific error 0 (0x0).  That error does not tell me much : (

We have not tried switching to a SQL Server database but I think it might be our next step. 

Are there any stats available regarding how much of a load the default Access database can handle? 

Here are some of the answers to John's questions. 

1. We have installed RoboHelp 8 on Windows Server 2003 SP1 (32 bit).  We had SP2 installed but when we contacted Adobe support, they told me SP2 was not supported so we uninstalled it.  Uninstalling SP2 did not fix our problem.

2.  We are using Tomcat with IIS

3. We do have the option to install SQL Server Express.  Any links to detailed instructions on how to do this would be helpful.  I haven't seen any while reading the documention.  I know it can be done, I just don't know how to do it properly.

4,5.  I will send screenshots, logs, and our support Case # to John's private email.

Thanks again!  We really appreciate the help.

tuls_garg
Inspiring
June 30, 2010

Hi,

I checked the logs you sent to John. Actually your logs date back to 16th June and the only problem in your logs seem to be related to reindexing of external pdf files which are published with your project. So as per your logs, when you faced this issue on 16th June, you had "reindex" set to true.

Have you faced this issue after setting "reindex" to false and restarting server? If yes, then please share the logs from that day.

Thanks

Tulika.

johndaigle
Legend
June 24, 2010

Hi, jw1726354 and welcome to the forums.

Here are several ideas:


Step #1

I don't know if you have already covered this, but you definitely need to increase your Java heap space to eliminate a common problem. Here's how:

If you bring up Tomcat6w.exe (located here on the server: "C:\Program Files\Apache Software  Foundation\Tomcat 6.0\bin\tomcat6w.exe) you will see this dialog if you  click on the Java tab.

First, Stop the Server. If you don’t see the circled text, then you can add it  by clicking in the white space below the last –Djava line and type in –XX:MaxPermSize=512m . Then, type in 512 in the Maximum memory  pool field. After making the changes, Restart the Tomcat Server.


Step #2 - Questions and offer to forward your log files directly

  1. What is the version of Windows OS for the server (Windows 2003 Server? 2008? 32 or 64 bit?)
  2. The Tomcat Server can be integrated with Microsoft's IIS web server, or not. Are you using Tomcat standalone, or with IIS. This is outlined in the RoboHelp Server 8 online help documentation for using the Tomcat/IIS redirect connector?
  3. From the Log file, it appears you are using the default Access database. Do you have the option to install SQL Server Express Database (free from Microsoft)?
  4. As an instructor, I meet with the Adobe team occasionally and I will be talking to them this week. If you would like to send me any screenshots, logs, etc. offlne to my private email found in my profile, I will be glad to forward them.
  5. Also, please let me know of any technical support persons you have been working with and any Incident case #s, etc.

Thanks!
John Daigle
Adobe Certified RoboHelp and Captivate Instructor
www.showmethedemo.com

John DaigleAdobe Certified RoboHelp and Captivate InstructorNewport, Oregon