(ZOS) Pausing an application server listener to manually update a high availability application
Instead of stopping the application server, we can use the MVS™ console Modify command to pause the listeners for that application server, perform the application update, and then resume the listeners. If we use this technique, we do not have to stop and then start the server to perform the application update.
Determine which application servers are hosting the cluster members that need updating.
If we have a high availability application whose updates we want to manually control, but we do not want to stop the affected servers, we can use the MVS Modify command to pause the listener for each of these servers and then update the application.
The MODIFY server,PAUSELISTENERS command stops the controller from listening on all ports except IIOP (ORB_TCP_SECURE and ORB_TCP_LISTENER). For IIOP, when this modify command is issued, the daemon stops sending requests to the IIOP transport channels. However, if we are running client applications that do caching, such as bean caching, it is possible for requests from these applications to be sent directly to the open IIOP port. This situation might occur because the IIOP listeners start early in the server startup process, thereby possibly opening the IIOP port before this modify command is issued.
To pause the listeners and manually control application rollout in a high availability environment:
Tasks
- Disable all forms of automatic synchronization, across all nodes in the cell and save the changes. Perform one of the following processes to complete this step:
- In the administrative console:
- Click System Administration > Node agents > node_agent_name > File Synchronization Service.
- Deselect the Automatic Synchronization and Startup Synchronization options.
- Select the Synchronize changes with nodes option.
- Click Save.
- Use wsadmin scripting to specify the following commands and then restart all affected node agents:
set node NODE set na_id [$AdminConfig getid /Node:$node/Server:nodeagent/] set syncServ [$AdminConfig list ConfigSynchronizationService $na_id] $AdminConfig modify $syncServ {{autoSynchEnabled false}} $AdminConfig modify $syncServ {{synchOnServerStartup false}} $AdminConfig save set nodeSync [$AdminControl completeObjectName type=NodeSync,node=$node,*] $AdminControl invoke $nodeSync syncFor a production environment, it is reasonable to always run the node agent with automatic synchronization disabled. However, it is advisable for startup synchronization to be enabled for the node agent so that it can acquire configuration updates that occur when the node agent is down. Startup Synchronization can remain enabled provided that you ensure that we will not restart the node agent manually, through automation, or through automatic restart manager during the application update process.
- Update the application in the master configuration repository on the deployment manager server. Perform one of the following processes to complete this step:
- In the administrative console:
- Click Applications > Enterprise Applications.
- Select the application we want to update.
- Complete the application update process.
- Save changes to the master configuration. DO NOT select the Synchronize changes with nodes option .
- Use wsadmin scripting to issue the following command:
set app_loc /path/to/app set app_options {application options ie: -appname app} set options [list -update] lappend options $app_options $AdminApp install $app_loc $options $AdminConfig saveAt this point, we have the updated the version of the application (App v2 in the following figure) in your Master Configuration. However, the original version of the application (App v1 in the following figure) is still running in the cluster that has Cluster members on LPAR1 and LPAR2.
Figure 1. Install application update. This figure illustrates the first stage of an application update in a high availability environment.
- Pause the listener of the application server on LPAR1 and manually synchronize the node to the updated version of the application. After you pause the listener, wait for all work items currently assigned to the server to complete, and then issue the following command from the MVS Console:
MODIFY short_server,PAUSELISTENERSFor example, if the short name for the server we are pausing is BBOS001, issue the following command:
MODIFY BBOS001,PAUSELISTENERS- Synchronize the node. Perform one of the following processes to complete this step:
- In the administrative console:
- Click System Administration > Node agents.
- Select the node we want to synchronize> Full Resynchronize.
- Use wsadmin scripting to issue the following commands:
set node NODE set nodeSync [$AdminControl completeObjectName type=NodeSync,node=$node,*] $AdminControl invoke $nodeSync sync
As illustrated in the following figure, the updated version of the application (App v2) now resides in the node on LPAR1.
Figure 2. Update the node on LPAR1. This figure illustrates the first stage of an application update in a high availability environment with two LPARs.
- Resume the listener of the application server on LPAR1. Issue the following command from the MVS Console:
MODIFY short_server,RESUMELISTENERSFor example, if the short name for the server we are pausing is BBOS001, issue the following command:
MODIFY BBOS001,RESUMELISTENERS- With the new version of the application running on LPAR1, repeat the preceding three steps on the other LPARs in the cluster to update them with the new version of the application. The following figure illustrates what the configuration will look like in a two LPAR cluster.
Figure 3. Update the node on LPAR2. This figure illustrates the second stage of an application update in a high availability environment.
The application update process is complete when the new version of the application is running on all of the LPARs in the cluster.
Related:
Application update procedure in a high availability environment High availability configuration Set up a highly available sysplex environment Stopping an application server to manually update a high availability application Automatically rolling out updates to a high availability application