I have four apps that run as services on a set of Windows XP machines, two of which are java apps. All four apps were originally designed to be run from a Linux server, and have three Windows XP machines connect to it, but customer requirements have meant porting these apps over to Windows so that everything can be run from a single machine.
Since we didn't want to drastically change anything in our code in order to run the apps as services, we used
srvany.exe to install and run the apps. This works fine for the two c++ apps, and for the most part, the java apps run fine. However, when a user logs out, the java apps stop. The actual services are still running, because
javaw.exe, doesn't matter which) is still running, but it is no longer running the app. As far as the services manager is concerned, everything is running fine, and so it doesn't restart the service like it should. Note that the primary user is using a limited account, and therefore can't restart the services manually.
Stuff we've considered/tried:
srvany.exe. was chosen primarily because it's free (as in beer) to use and relatively easy to configure. We also considered
srvstart.exe, but I believe it exhibited the same problem. There are two dedicated java service wrappers that we looked into, but were eliminated from consideration because of licensing terms and/or difficulty configuring them. Note that YAJSW was not considered initially, and, time permitting, may be tested.
The problem doesn't seem to exist on Windows 7, but since our customer requires Windows XP, that isn't an option.
I've also tried allowing desktop interaction for the two java apps, but this doesn't solve the problem when using
javaw.exe, and shows a command line window when using
java.exe, which is extremely undesirable, even if it does solve the problem. Our stopgap measure so far has been to tell the customer to not log out of an account, but rather only use switch user.
Is there anything else I'm missing or should try? This is also time sensitive, as once these units go out the door, it may be extremely hard to implement a fix on site.