HTTP/SOAP Service not stopping

Quite often when submitting a new configuration the HTTP/SOAP Service will not stop. The only method that I’ve found to restart everything back up is to KILL the HTTP/SOAP Service.

Why does this occur?

This usually occurs when the service was unable to gracefully close a session. If you can, close any browser window that may still be displaying a page served by the server (although that may not always be possible), which will close the connection from the client side and allow the service to shut down properly.

If you can, also, replace the HTTP Server Input task you currently use with a NodeJS Server Input task, which is much more resilient and should be able to force-close any connection under all circumstances.

The browsers are remote so really can’t shut them down. I believe that they leave the browser window open all day. No reverse proxy setup (at least not yet) so I would have to have them change the port number in the URL.

On the DEV system we are starting to use NodeJS instead of the HTTP Server Input for some new processes, but ran into an issue where the NodeJS service will not stay running. This is the error in the ppnode.log

[2019-05-16T15:45:06.642] [INFO] ppNode - Cleaning up C:\ProgramData\Objectif Lune\PlanetPress Workflow 8\PlanetPress Watch\nodeJS and subfolders…
[2019-05-16T15:45:06.642] [INFO] ppNode - Looking up C:\ProgramData\Objectif Lune\PlanetPress Workflow 8\PlanetPress Watch\ppwatch.cfg for configuartion file
[2019-05-16T15:45:07.003] [ERROR] ppNode - Error: Unclosed root tag
Line: 27833
Column: 13
Char:
at error (C:\Program Files (x86)\Objectif Lune\ppnode\node_modules\sax\lib\sax.js:651:10)
at strictFail (C:\Program Files (x86)\Objectif Lune\ppnode\node_modules\sax\lib\sax.js:677:7)
at end (C:\Program Files (x86)\Objectif Lune\ppnode\node_modules\sax\lib\sax.js:658:47)
at SAXParser.write (C:\Program Files (x86)\Objectif Lune\ppnode\node_modules\sax\lib\sax.js:975:14)
at SAXParser.close (C:\Program Files (x86)\Objectif Lune\ppnode\node_modules\sax\lib\sax.js:157:38)
at Parser.exports.Parser.Parser.parseString (C:\Program Files (x86)\Objectif Lune\ppnode\node_modules\xml2js\lib\parser.js:322:42)
at Parser.parseString (C:\Program Files (x86)\Objectif Lune\ppnode\node_modules\xml2js\lib\parser.js:5:59)
at Promise (C:\Program Files (x86)\Objectif Lune\ppnode\src\config\WorkflowConfigParser.js:28:24)
at new Promise ()
at WorkflowConfigParser.parse (C:\Program Files (x86)\Objectif Lune\ppnode\src\config\WorkflowConfigParser.js:25:16)
at Promise (C:\Program Files (x86)\Objectif Lune\ppnode\src\config\ConfigManager.js:215:31)
at new Promise ()
at ConfigManager.parse (C:\Program Files (x86)\Objectif Lune\ppnode\src\config\ConfigManager.js:211:16)
at Promise (C:\Program Files (x86)\Objectif Lune\ppnode\src\workflow_modules\WorkflowHTTPServer.js:533:32)
at new Promise ()
at WorkflowHTTPServer.setConfig (C:\Program Files (x86)\Objectif Lune\ppnode\src\workflow_modules\WorkflowHTTPServer.js:527:16)
[2019-05-16T15:45:07.007] [ERROR] ppNode - Error loading config file. The configuration provided might not support NodeJS.

If I look at Line: 27833 in the ppwatch.cfg file the line is

<CodePage>1252</CodePage>

Not sure what it is, but anytime we add something to the config then NodeJS will stop running.
We even uninstalled and reinstalled and still have the same issue

That’s very strange. Over the last several months, I have been updating all of my configs to use the NodeJS input and haven’t run into that issue. I have passed your comment on to the R&D team, perhaps someone there can shed some light on your issue.

ppNode - Error: Unclosed root tag

Concerning NodeJS, the error message seems to imply that the configuration file is corrupted. SAX is the lib that parses the XML and for some reason it fails to parse correctly. Can you confirm the XML is valid ?

Using various online XML validators it checks out, however using the XML Tools in Notepad++ I located one issue. One of the processes was using the Sleep v6 plugin and it argued about the encoding on then Sleep v6 parameters. I removed the Sleep plugin and instead used a script with Watch.Sleep 10000 instead.

This appears to work, but it is odd as it worked for a while and then suddenly stopped unless we reduced the size of the config file.