Web server fails to start after applying an xMatters patch

This article describes how to resolve a Windows configuration issue that causes the web server to fail after applying an xMatters patch. This issue can affect all versions of xMatters running on Windows Server 2003 that have had a patch applied.

Issue Details

After using the Windows Server 2003 Extraction Wizard to unzip a patch file, and then restarting the web server, the xMatters web user interface displays an error indicating that it cannot find the files in the <xMHOME>\webserver\webapps\cocoon\alarmpoint\flow directory. In fact, this directory contains no files.

Additionally, other directories that should contain JavaScript files are all empty, including the following:

<xMHOME>\webserver\webapps\cocoon\resources\scripts

<xMHOME>\webserver\webapps\cocoon\alarmpoint\includes\javascript

Cause

By default, if a file is downloaded from the Internet or copied from another computer, Windows blocks it. As a result, if the xMatters patch ZIP file is blocked, JavaScript files cannot be extracted from it. More specifically, the Extraction Wizard ignores the JavaScript files in the ZIP archive and deletes the originals.

NOTE: if you attempt to use WinZip to extract the patch file, you will receive errors indicating that.js is blocked by Windows.

Solution

To resolve this issue:

  1. Right-click the patch ZIP file.
  2. Select Properties.
  3. On the General tab, click Unblock.
  4. Click OK.

You can now acquire the latest version of the patch ZIP file and extract it without having the files blocked.

Further information

xMatters support staff have encountered this same issue with the installer package; a customer downloaded the installer and it was subsequently blocked by Windows. Though the installer seemed to complete successfully, attempting to start the web server produced the following error message:

2013-04-09 03:04:56,480 [main] ERROR log.ExceptionLogging - com.invoqsystems.apex.exceptions.AlarmPointDatabaseException: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver

com.invoqsystems.apex.exceptions.AlarmPointDatabaseException: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver

  at com.invoqsystems.installer.database.PatchDatabaseUpdateHandler.updateDatabase(PatchDatabaseUpdateHandler.java:279)

  at com.invoqsystems.apex.web.servlet.listener.PatchDatabaseUpdateContextListener.contextInitialized(PatchDatabaseUpdateContextListener.java:61)

  at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:530)

  at org.mortbay.jetty.servlet.Context.startContext(Context.java:135)

  at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)

  at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)

  at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)

  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)

  at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)

  at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)

  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)

  at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)

  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)

  at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)

  at org.mortbay.jetty.Server.doStart(Server.java:217)

  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)

  at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:947)

  at com.alarmpoint.jetty.JettyMain.main(JettyMain.java:50)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  at java.lang.reflect.Method.invoke(Unknown Source)

  at org.mortbay.start.Main.invokeMain(Main.java:183)

  at org.mortbay.start.Main.start(Main.java:497)

  at org.mortbay.start.Main.main(Main.java:115)

Caused by: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver

  at java.net.URLClassLoader$1.run(Unknown Source)

  at java.security.AccessController.doPrivileged(Native Method)

  at java.net.URLClassLoader.findClass(Unknown Source)

  at java.lang.ClassLoader.loadClass(Unknown Source)

  at java.lang.ClassLoader.loadClass(Unknown Source)

  at java.lang.ClassLoader.loadClassInternal(Unknown Source)

  at java.lang.Class.forName0(Native Method)

  at java.lang.Class.forName(Unknown Source)

  at com.invoqsystems.installer.support.jdbc.DriverContext.load(DriverContext.java:96)

  at com.invoqsystems.installer.support.jdbc.helper.DatabaseReader.initDriver(DatabaseReader.java:230)

  at com.invoqsystems.installer.support.jdbc.helper.DatabaseReader.(DatabaseReader.java:51)

  at com.invoqsystems.installer.support.jdbc.helper.DatabaseReader.(DatabaseReader.java:43)

  at com.invoqsystems.installer.database.PatchDatabaseUpdateHandler.buildPackages(PatchDatabaseUpdateHandler.java:132)

  at com.invoqsystems.installer.database.PatchDatabaseUpdateHandler.updateDatabase(PatchDatabaseUpdateHandler.java:239)

  ... 24 more

To resolve this issue, unblock the installer archive BEFORE extracting it as described above. Once the extraction is complete, right-click the installer's .exe file, and then select Run As... (on Windows 2003). Select Current user, and ensure that the "Run this program with restricted access" check box is NOT selected.

The installer should now run successfully, and the web server will start correctly.

xMatters Reference

DTN-3273, JDN-1323

Originally created by Don Clark

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.
Powered by Zendesk