"There was an error creating the Tomcat Windows Service" JSS on Windows Server

powellbc
Contributor II

No matter what I have tried, I cannot install any JSS upgrade on a test system we use using the MSI installer. The error is "There was an error creating the Tomcat Windows Service" followed by (as you might expect) "There was an error starting Tomcat."

I am now attempting to install 9.72 since that is where our database is at. I had this same issue earlier so I did a manual install of 9.72. I then tried upgrading to 9.73 but that failed (I was told by our TAM that that should work) with this error. Next, I completely removed all JSS folders, and Apache was uninstalled as well. Even with everything removed and reboots in between I still get this error.

Any ideas what is going on? I have an open call but thought I would check with the hivemind as well.

15 REPLIES 15

Kaltsas
Contributor III

Do you have your AV On Access Scan disabled? That tends to wreak havoc on the windows JSS installer.

powellbc
Contributor II

I tried it with real time protection enabled and disabled, no change.

I also excluded .war files from scanning and no change. Some other posts I read mentioned the unpacking .war error, but that Is not what I am seeing. I thought I would try it anyway.

were_wulff
Valued Contributor II

@powellbc

Are you logged in to the server with a local admin account, or a domain/AD admin account?

Amanda
JAMF Software Support

powellbc
Contributor II

Domain account in local administrators group. I saw in another thread you suggested a local admin account. I will try that now....

powellbc
Contributor II

This failed too, earlier in the process with a different error:

"Database: C:WindowsInstallerinprogressinstallinfo.ipi. Cannot open database file. System error -2147287008."

This is using an local admin account from an administrative command prompt.

were_wulff
Valued Contributor II

@powellbc

There are a couple things that jump to mind; apologies if you've already tried these, or I missed a mention of them.

First thing to try: Open up a command prompt as administrator, then run msiexec /i path o heinstaller.msi and see if it completes when kicked off that way.

If that doesn't do it, as odd as it may sound, if you're able to, log in on a local administrator account, then do the same method of starting the installer.

We've seen logging in as a local admin as opposed to a domain or AD admin work in the past, and it's certainly worth a shot.

If UAC is enabled and you're able to temporarily turn it off, that can occasionally help as well when the errors point toward there being something going off permissions wise (at least 'going off' in the installer's view of things).

Edit: We posted replies at the same time! That particular error is one I haven't run across yet. If you haven't opened up a case with your Technical Account Manager, it might be a good idea just in case this will require we get a few more log files in to look at.

Thanks!

Amanda JAMF Software Support

powellbc
Contributor II

@amanda.wulff The timing was amazing. :)

I did try the method of manually executing msiexec from an admin command prompt under a local account and that generated the error I posted above. The same happened when I tried launching the MSI from the GUI. UAC is set to never notify.

What is weird is the error is different depending on if I am using a Domain versus local admin account.

were_wulff
Valued Contributor II

@powellbc

So, quick Google search of that particular error you got when running as a local admin returns a few pages that all point toward issues with either the registry or with the windows installer service itself; so something going on on the OS level with the Windows installer service somewhere.

Are you able to run any other MSI installers (not necessarily ours), by any chance?

A couple of things to take a look at:

  • Restart the Windows Installer service either through Services or by opening a command prompt and run net stop msiserver then net start msiserver.

  • Unregister and re-register msiexec.exe, then check again to make sure the Windows Installer service is running.

To do that (steps from: this Microsoft answers page taken from a KB that applies to 2008R2 as well. ):

  1. On the "Start" menu, click "Run:.
  2. In the "Open" box, type "msiexec /unreg", and then press ENTER.
  3. On the "Start" menu, click "Run".
  4. In the "Open" box, type "msiexec /regserver", and then press ENTER.

After doing both of those things, try running the installer again as a local admin and see if it completes successfully.

That link above also has some steps to clear the registry of any pending installations, which is also something you could try if the above steps alone don't seem to make a difference, however, as registry edits can potentially cause as many problems as they solve, if you're not comfortable doing those steps, please give support a call.

Let us know how that goes.

Amanda
JAMF Software Support

powellbc
Contributor II

Amanda, I followed these steps:

  1. Rebooted the server.
  2. Manually restarted msiserver service (just to be thorough).
  3. Re-registered msiexec.exe.
  4. Attempted the reinstall with a local account. No more "Cannot open database file" error, but back to the original issue:

9/15/2015 7:30:52 AM : There was an error creating the Tomcat Windows Service.
9/15/2015 7:30:52 AM : Moving and unpacking JSS Web App...
9/15/2015 7:30:52 AM : Starting Tomcat7 Windows Service...
9/15/2015 7:30:53 AM : There was an error starting Tomcat.

Key1
New Contributor III

Dependencies installed and working? JDK and Java Cryptography Extension (JCE). I've had some issues in the past when JRE was also installed with it using the wrong Java virtual machine dll.

were_wulff
Valued Contributor II

@powellbc

Oddly, that is a step forward; that's usually just back to the more common problems we see with the Windows installer.

If you still have a JSS folder in Program Files, there are one of two ways we can go here.

First option (preferable as it does let us keep a backup, more or less, of whatever might be left): Move (not copy) the JSS folder from Program Files out to the Desktop & re-run the installer from the command line.

Second option (before doing this, if you still have a JSS folder under program files, copy the JSSackups folder out to the desktop): Under Programs and Features in Control Panel, if you see an entry for the JSS, uninstall it and reboot, then double check and make sure there is no JSS folder in Program Files before re-running the installer at the command line.

This time around, I'd suggest we run the installer with verbose logging enabled so we get an additional set of logs that can be sent over for troubleshooting if necessary.
To do that: msiexec /i drag/the/installer /lv C:JSSlogging.log

You can change C:JSSLogging.log to any location/name, that's just the example I use. The switch in that command is a lower case L, not an i.

If it DOES fail after either of those two options, please grab the JSSInstaller.log located in C:WindowsTemp and the log file that was created with verbose logging before clicking OK on any error messages; that's not a file we'd want to post here as it can contain some identifying information, but it is something your Technical Account Manager will want as part of troubleshooting.

If neither of those options works, the next step would be to get a case going with your Technical Account Manager so they can look over those logs and possibly set up a WebEx to take a closer look at anything else that might be going on that would be easily missed just chatting on the forums here and, as a last resort, if we just can't get the installer to work, we may have to go through the steps to manually set up and install the JSS.

If we do get the installer working and the JSS installed, I'd highly recommend doing manual installations for upgrades from that point on as doing that is not only faster, but bypasses all the common issues we tend to see with the Windows installer itself.

If the server is a VM and we've got a snapshot from just prior to the upgrade, it's also a possibility to just restore the snapshot to get everything going again, then set up a time with your TAM to be on the line for the next upgrade attempt as well.

Edit to add: I see in the case it's mentioned that there may have been a manual installation prior; do you have a folder that is named something similar to Apache Software Foundation? It may or may not be inside of Program Files.

Thanks!
Amanda JAMF Software Support

powellbc
Contributor II

I removed all references to Apache and the JSS folder with the same result (that was one of the first things I tried. I also cleared references to Apache in the registry. I will attempt an install with the verbose option and report the results.

Is there a documented process for upgrading Manual installations? I am not familiar with the process of upgrading the JSS manually. My TAM earlier told me a manual install could be upgraded with the installer—is that correct?

were_wulff
Valued Contributor II

@powellbc

I apologize if there was any misunderstanding; if a JSS was originally manually installed as opposed to having been set up by using the installer, we absolutely do not want to run the installer. It will lay down a duplicate, sometimes non-functional (if the installer fails) Tomcat service and just kind of throw a wrench into the works either way.

The manual installation documentation we have can be found here.

It should be noted that that document assumes you’re setting up a brand new JSS, so for just an upgrade, the majority of the steps listed are skipped as we don’t actually need to re-set up MySQL or Tomcat from the ground up to do an upgrade.
In my digging around, it appears that we don’t specifically have a document just for manual upgrading of an existing JSS, though it is covered in the CJA course.

The upgrade steps below assume Tomcat is in place and working, and that the JSS is functional; in this case it sounds like it is not, so these instructions would just be for future reference. For right now, I’d recommend waiting on trying either a manual or the installer based upgrade until the WebEx I see mentioned on your existing case.

The steps we’d do to manually upgrade a currently working Windows JSS (these steps will work regardless of whether the JSS was set up manually to begin with, or was initially set up using the installer):

  1. Create a temp directory called JSSSetup on Windows server. For example: C: empJSSSetup
  2. Download the Manual Installation files from My Assets on JAMF Nation. Click on Show JSS Installer Downloads and choose the JSS Manual Installation option to get the file. Open it, and copy the ROOT.war file to the JSSSetup directory that you just created.
  3. Stop Tomcat.
  4. Rename and move the existing ROOT.war & ROOT folder in the Tomcatwebapps folder. I usually just move things to the Desktop, but as long as it's moved somewhere else, it's fine.
  5. Copy the ROOT.war from the temp directory created earlier into the Tomcatwebapps folder.
  6. Start Tomcat and let the new ROOT.war unpack. I usually just give it roughly two minutes to be on the safe side.
  7. Stop Tomcat once everything has unpacked.
  8. Go to the renamed-in-step-4 ROOT folder >> WEB-INF >> xml >> Copy the DataBase.xml file.
  9. Go to the TomcatwebappsROOTWEB-INFxml folder and paste the DataBase.xml file there; you can overwrite the default one that exists. If you want to back it up first, feel free, but it shouldn’t be necessary.
  10. Start Tomcat again.
  11. The JSS should be ready to go and updated at that point.

We’ll want to keep the copies of the renamed ROOT.war and ROOT folder until we’re absolutely sure everything is up and running as expected. Once you’re sure it’s all behaving as expected, we can delete the two files from step 4.

Amanda
JAMF Software Support

powellbc
Contributor II

Just had a nice call with support. They mentioned the Java environment variables so i double checked my work. I followed the instructions here earlier when I did the manual install: Configuring the JAVA_HOME and JRE_HOME Environment Variables on a Windows Server.

The issue was caused me being sloppy with this step: I added C:Program FilesJavajre7 as the value for both variables. This caused an issue with the installer because JAVA_HOME which should have been C:Program FilesJavajdk1.7.0_79. I did not think of this as a potential cause because a manual install worked and there was no red flag in the basic log. Once the path was fixed the installer worked as expected.

So, in summary, this was a self caused issue. Thanks @amanda.wulff and everyone else for all your assistance!

were_wulff
Valued Contributor II

@powellbc

That is so--strange! Usually when those variable paths are off, we get a popup error right away claiming Java isn't even installed. The fact that it got through to the very end and fizzled on installing Tomcat (at least, that's what the logs indicated!) is just weird, but a win is a win! :)

On the topic of those variables though, in the event that you update Java, be sure to jump back in there and update the variables to point toward the new paths, otherwise it may cause problems with the installer the next time it's run.

Glad it's up and running again!

Amanda
JAMF Software Support