One of the nice features of Oracle Application Express Listener is Standalone Mode. Standalone Mode enables the Listener to run outside of an application server, starting Standalone Mode is as simple as typing the following in a command prompt:
java -jar apex.war standalone
Seconds later a functioning Listener instance is up and running. It’s a lot quicker and more convenient than the multiple steps involved in deploying Listener to an application server.
And that’s the whole reason Standalone Mode exists, ease of use, speed, and convenience, it saves developers time, compared to the overhead involved in deploying to an application server.
So it’s an extremely useful feature for development use cases, but when you start Standalone Mode, the following message is displayed:
NOTE: Standalone mode is designed for use in development and test environments. It is not supported for use in production environments.
Naturally customers ask: ‘Why isn’t Standalone Mode supported in production environments?’. Well, even though Standalone Mode uses the fantastic Oracle Grizzly framework to provide a robust JEE environment, there are still many features it lacks compared to GlassFish or WebLogic:
Standalone Mode has never been stress/load tested. We don’t test to see how far Standalone Mode will scale, how many concurrent requests it can serve, how it will behave under high loads, etc.
GlasshFish and WebLogic have huge engineering focus on performance and scalability, they are engineered to cope with high load scenarios.
Since we leverage Grizzly (which is a component of GlassFish), we get the benefits of some of that engineering effort, but still there’s many many orders more effort put into GlassFish and WebLogic.
Standalone mode is not tunable.
Want to change the number of HTTP listen threads? You can’t do that. Want to change the keep-alive timeout? You can’t do that. Want to change the size of the request queue? You can’t do that. Limit the maximum URL length? Nope.
You get the picture, important common tweaks that you can do on WebLogic and GlassFish, are not possible in Standalone Mode
To conclude, we strongly encourage you to use Standalone Mode in development environments, it will save you time and effort, but hopefully now you can appreciate that when it comes time to deploy to production, you need to deploy Listener on WebLogic or GlassFish.