Stop and start Appian gracefully when a server is restarted

Has anyone found a way to make Appian shut down and start up automatically and gracefully when a server is restarted? I'd love to make the Windows services set to Automatic so they can be somewhat self-healing (particularly when server patching happens in the middle of the night), but I don't how to do it so that the application server doesn't try starting up until the engines are ready. Any ideas/solutions out there?...

OriginalPostID-116556

OriginalPostID-116556

  Discussion posts and replies are publicly visible

  • Hi Jordan,

    Appian already has a provisioning to handle unexpected Server Restarts.

    You need to setup your Appian Services with Quick Stop Service Installation. For more information, please review the following Documentation:
    forum.appian.com/.../Installing_Appian_as_a_Windows_Service.html

    Note that when you set up Appian with QS (Quick Stop), you need to use the stop-suite.bat file to stop the Engines if you need properly check-pointed Engine Database Files (KDB's) that are required during upgrades / data back-loads, as the QS will not check-point the KDB's, but simple stop the GW's.

    Also, keep in mind that since the Engine Database Files (KDB's) are not check pointed when the Service Stops, the Appian Engines will need to replay the transactions, once they are brought back up. As a result, bringing the engines back up might take slightly longer than usual, depending on the number of transactions each Engine has to replay.

    Hope this helps!
  • That helps with the unexpected shutdowns I suppose (thanks for the tip), but what about when the servers are brought back up? How do I get the environment to start back up automatically if the application server is supposed to wait until all engines are up and running?
  • Hi Jordan,

    Setting up Appian Engines with QS will prevent corruption of the Appian Engine Database files, in case server shuts down un-expectedly and avoid data loss. Unfortunately, you will need to start the app-server manually, only after all engines come up successfully.

    You might be able to setup a custom script to monitor the status of the engines using check-engine.bat script and start the App-Server only when all Engines show 1/1 and Status="Okay".
  • So there's no other way to start up Appian automatically? If I started up the application server at the same time as the engines, would it never come up successfully? Even if the application server sees the engines down initially, does it not recover itself once the engines are up and running?
  • The app-server deployment will not complete if all the Engine are not up. It needs to communicate with the Appian Engines during startup and the un-availability of the Appian Engines will cause the deployment to not work properly.

    The App-Server will not recover itself. You will need to manually restart for the application to be deployed correctly.
  • Has anyone else out on the forum found a way around this??? We've worked very hard to make our environment highly available, but this is a huge flaw undoes a lot of that.
  • We are looking into doing something but haven't even dove into the process. My first suggestion is similar to Alok's. I already have a powershell script that monitors the checkengine output and puts it to a file, and from there I was going to just monitor it to make sure there are no ERRORS/FATAL and then being the startup of JBoss.