Incremental deployment of ABL Web applications to PAS

Posted by vjug on 03-May-2018 08:56

What is the best way to deploy new version of existing ABL Web application to PAS? Is undeploy and then deploy again cleanest way or is there a better way? Is PAS restart necessary? We had a case where we couldn't see our changes before we restarted PAS - is there a configuration setting to avoid this kind of behaviour?

All Replies

Posted by dbeavon on 03-May-2018 10:29

Did you test restarting PASOE?  That should do the trick if nothing else does, and should be sufficient if you don't mind a minor outage.

Once your new code is in place, the Inactive Agent sessions need to be trimmed and restarted.  Or the agents themselves (internal processes running as _mproapsv) can be restarted too.  You can do these things via the OE manager REST API, which I suspect everyone is including in production.  

They also have a JMX interface that can perform similar operations.  That is theoretically more secure, but I don't think it is used very often because it is pretty inaccessible.  Progress doesn't expose the JMX via jolokia so you have to dive into some pretty obscure tools to use that interface (perhaps the obscurity contributes to the security of JMX).

Posted by dbeavon on 03-May-2018 10:32

Here is another thread about making sure that PASOE will pick up changes in r-code after a deployment.  I think this is what you are looking for...

community.progress.com/.../36461

Posted by Irfan on 03-May-2018 12:56

[View:/cfs-file/__key/communityserver-discussions-components-files/21/agentcleanup.zip:320:240]Do you just want to update the rcode or you want to restart the entire WebApplication so it picks up the latest paar file and other stuff.

If you want to update the rcode without restarting the server and not cause any requests fail then you can do the following in 11.7.3.

StopAgent using jmx or REST API's. If you are not using REST API's then the jmx scripts. I have attached the jmxscripts that would perform softstop on all the agents that are running on the PASOE Instance(this is just a sample, you have to rewrite it based on your needs). If you want to do it specific to an ABL Application, then you can do it too. 

For running JMX from our scripts, you do not need open any ports to the outside world. It just connects to the pid and get the information we need.

If you have OE Management or if you have oemanager webapps installed, then you can do that through REST API's. Also we have an API to start an agent, so you can deploy the new rcode, start the agent and then stop the old agents. 

Documentation on the stopAgent for 11.7.3 is available here - [View:https://documentation-test.progress.com/output/oe117sp/index.html#page/gssp3%2Frest-api-reference-for-agent-management.html%23wwID0EI4DK:550:50]

Posted by vjug on 14-May-2018 05:17

This is partially what i was looking for (although we have to upgrade from 11.7.2 to 11.7.3 first) but the is there an easier way for incremental update of web application (.war file)? Is "undeploy" and "deploy" necessary or is there other way? There are things that bother me about it:

- If someone is "holding" app folder while undeploying PAS tells me "Undeploy successfull" and app stays in the list - it took us some time until we realized the cause of the problem, not to mention that we tried a new deployment without realizing that app is still on the list and was not successful

- After successful undeployment app folder is deleted completely so you should not put anything there

This thread is closed