Standalone Backendless Play Server Went Down

First thank you guys for create an awesome product. Got standalone backendless up and running with minimal fuss, but I am running into an issue with the play server going down pretty much every other day or so.

I’m assuming its going down due to an error or exception because I’m not rebooting the server and I run into the RUNNING_PID issue after it dies. I have to go in and manually delete the file before restarting the play server. I’m attaching the log so hopefully you can see what caused this latest crash.

BUT the more important request/suggestion is if there is a way around the RUNNING_PID issue? Regardless of why the play server goes down, I’d like to know that it’ll automatically come back up or at least be notified somehow when it happens as its unusable if I can rely on it to be running.

Thanks!

playServer.log.txt (27.51kB)

Hi Allen,

The playServer.log doesn’t show any error pointing to the reason why the server stopped, so I think it was just the process killed for some reason by your OS. We couldn’t reproduce this behaviour so I suppose you would need to do more investigation by yourself on what kills the process.

As to the RUNNING_PID problem, this may be related to the process killing, because when the process is killed this file cannot be deleted by play, and thus you’ll need to remove it manually. Unfortunately, there is no possibility to automate this process from withing the Standalone itself currently.

I can only advice you to set up some monitoring tool which will restart Play when it stops and clear the RUNNING_PID file. This is almost exactly what we do on online servers.

Thanks for the quick response Sergey. I had the same idea and started looking into ways to monitor when it goes down and alert me or restart automatically. I’m glad to know I’m on the right track and not just a hacked up workaround. I’ll figure out the rest, you can mark the problem solved.

Also there is a possibility that there’s not enough memory for the process thus it stops. Check this possibility, too.

Hi Sergey
would you give me your monitoring tool to automate the checking of running state, and restarting them.
I can pay for that.
best regard

First try to add the following line to <installdir>/apps/backendless/htdocs/conf/application.conf file:

pidfile.path = "/dev/null"

This should prevent the creation of RUNNING_PID file.

Note that we won’t provide further support with the Standalone version. Considering you’re ready to pay, I would really suggest you looking at our new product Backendless Pro, which has support service included.

Thanks a lot I’ll try it . I’m also interested to create a batch file service to do following things:

  • check the running status of all services
  • restart them if necessary
  • search for RUNNING_PID file in htdocs and remove if find it
    unfortunately I’m not good at batch files but will try to create it . I’ll appreciate your help too.
    Regard

You may look at this tool for monitoring: https://mmonit.com/monit/, it can be configured to do the “check and restart” part you describe.

Or if you’d like us to do that for you, it falls under our Professional Services offer. For details, please contact sales@backendless.com.

Thanks , I am using the windows server while Monit doesn’t support windows. there are many equivalents for windows such as ManageEngine to monitor windows services. Nagios to monitor web server and web applications.
are backendless services available in windows services ? since this programs will check just windows services.
If I get stuck I will ask for professional service

Backendless’ components run as Windows Services in Windows environment, so it should be OK.

I added pidfile.path="/dev/null" to the end of application.conf but after OS restart RUNNING_PID file get created in htdocs

here is my application.conf file after addding above command

application.name=playAPI
application.secret=“80111dfa2d65f4fa7b9b15cb26a725102dd2e41c62c006de4da4d8bdfacbac5b”

The application languages

application.langs=“en”

Root logger:

logger.root=INFO

Logger used by the framework:

logger.play=INFO

Logger provided to your application:

logger.application=INFO

ehcacheplugin=disabled

smtp.host=localhost

#default timeout for promises
promise.akka.actor.typed.timeout=60s

parsers.text.maxLength=10000K

play {
akka {
event-handlers = [“akka.event.slf4j.Slf4jEventHandler”]
actor {
default-dispatcher = {
fork-join-executor {
parallelism-min = 300
parallelism-max = 300
}
}
}
}
}

pidfile.path = “/dev/null”

I created a powershell script which checks backendless servers running state and restart them if they stopped. also script checks the RUNNING_PID file and if it’s in htdocs folder deletes it. then I created windows task scheduler which runs the script periodically. this way my problem get solved completely If somebody needs script I can give him.

Regard

hi mousa I need a script