11 Replies Latest reply: Jul 13, 2010 6:29 AM by jw1726354 RSS

    RoboHelp Server 8 becomes unresponsive

    jw1726354 Community Member

      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.j ava: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.ja va: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.j ava: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.ja va:588)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
          at java.lang.Thread.run(Unknown Source)
        • 1. Re: RoboHelp Server 8 becomes unresponsive
          John Daigle CommunityMVP

          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.

           

          JavaPermSpace.png

          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

          • 2. Re: RoboHelp Server 8 becomes unresponsive
            tuls.garg Community Member

            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.

            • 3. Re: RoboHelp Server 8 becomes unresponsive
              jw1726354 Community Member

              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.

               

               

              • 4. Re: RoboHelp Server 8 becomes unresponsive
                tuls.garg Community Member

                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.

                • 5. Re: RoboHelp Server 8 becomes unresponsive
                  jw1726354 Community Member

                  Tulika,

                   

                  Thanks for taking a loog at my logs.  The logs are dated 6/16 because that is when I first contacted RoboHelp support after trying all suggestions I saw on this Forum including setting the reindex to false. I am not sure the exact date we set the "reindex" to false but it has been set that way for quite a while and it did not solve our problem.  Our server is unresponsive at least twice a day requiring a restart of the Tomcat servce.  Is there a way to send you the most recent logs?

                  • 6. Re: RoboHelp Server 8 becomes unresponsive
                    jw1726354 Community Member

                    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.j ava: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.ja va: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.j ava: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.ja va:588)
                        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
                        at java.lang.Thread.run(Unknown Source)

                    • 7. Re: RoboHelp Server 8 becomes unresponsive
                      tuls.garg Community Member

                      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.

                      • 8. Re: RoboHelp Server 8 becomes unresponsive
                        jw1726354 Community Member

                        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?

                        • 9. Re: RoboHelp Server 8 becomes unresponsive
                          tuls.garg Community Member

                          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

                          • 10. Re: RoboHelp Server 8 becomes unresponsive
                            jw1726354 Community Member

                            OK that explanation makes more sense to me.  I changed the max threads to 400.  We have already deployed so I don't have a way of changing the user agent for those trying to get help from our application.  Is there anything I can do on the server to fix this?

                            • 11. Re: RoboHelp Server 8 becomes unresponsive
                              jw1726354 Community Member

                              I thought I would update this in case anyone has similar problems.  We have had our maxThreads property set to 500 for over a week now and our RoboHelp server still becomes unresponsive a few times a day.  I created a test program that sets the useragent and this still causes the unresponsiveness.  I have been working with Adobe support and they mentioned a memory leak in Tomcat but still don't have a solution for us.  It has been about a month now without a resolution.