stage is the worst term for this. Seriously. stage, to me at least, implies a temporary location. I come from a database background, so a staging table is thought of as the location where data is stored prior to being altered for the “real” insert. I guess that argument could be made that stage is the admin server, in which case it kind of makes sense.
In the case of WebLogic, it should be termed something else. Perhaps deployment location, or something similar. I note this because administrators need to understand that if you choose stage mode for deployment, the jsp will only ever be stored in that location. nostage is the same thing, it’s just that the location is shared. If you select nostage and copy your software to this location, and “deploy” from it, it must remain there or 404’s will be generated for missing files, or when the shared file location fails for whatever reason. In other words, nostage is not just a temporary location while each managed server “deploys” the software from that location.
As such, unless you can absolutely guarantee that the shared file location will *always* be available, I think nostage is suicide.
If you want to control deployments, I think the only logical choice is external_stage, in which you stop a deployment on a given server, copy the software to the deployment location on that server, and restart the deployment on that server. In that way, you can control the availability of the application at a server level.
In our case, we ended up doing the following:
bamboo build software using python script connect to admin server for each server in domain with a certain naming convention stop server copy ear to staging location on server start server verify server if not ok: increment counter send email