This document includes the procedures for successfully upgrading the following:
Evolve IMSWorkX Service Delivery Platform
Evolve IMSWorkX Applications
PostgreSQL ® Database System
This update can be done successfully without service interruption or impact on system traffic. In general, updates should still be performed at a time when call traffic is minimal or during a maintenance window.
Perform the following steps a few days prior to the upgrade window.
Download the Service Delivery Platform update RPM file from the Customer Portal.
Upload the RPM file to a directory, such as /home, on each server.
Log in to each server via SSH and go to the directory where the RPM file was uploaded.
Run the ls
command to make sure that the uploaded RPM appears in the list.
Run the md5sum <filename>
command to verify the checksum. If the checksum is not valid, download and upload the RPM file again.
Verify that the primary NIU is active and the secondary NIU is standby by running the ps_hastatus
command on the primary NIU. You should see output similar to the following:
Local node status:
Services: Online
Cluster: Running
Network: Up
Heartbeat: Up
Private network address: 111.22.333.444
Private heartbeat address: 111.22.333.444
Partner node status:
Services: Offline
Cluster: Running
Network: Up
Heartbeat: Up
Private network address: 111.22.333.555
Private heartbeat address: 111.22.333.555
Optional. Verify that the web UI of any installed application is showing CDRs with timestamps that are within the configured CDR materialized view cron rate. Note that timestamps in the web UI are based on Universal Time Coordinated (UTC).
Perform the following steps during the upgrade window.
Select the service host in the Object panel.
Expand the Logs folder.
Select the PS_SysLog.txt file.
Note
If calls are not being completed successfully, do not proceed to the next step.
Optional, but recommended. Take a pre-upgrade VM snapshot for each NIU and AS.
On the primary NIU, run the ps_haswitch
utility.
On the primary NIU, run the ps_hastatus
utility to ensure that the local node has a state of offline and the partner node has a state of online.
Note
Do not proceed to the next step if the local node has a state of offlining because database replication will be incomplete.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If calls are not being completed successfully, do not proceed to the next step.
Go to the directory where the RPM file was uploaded before the upgrade.
Run the yum install <filename>
command.
Verify the install and then wait for the install to complete.
Run the service XpressPlatform stop
command and then verify that it is stopped with the ps_cksys
command. You should see output similar to the following:
cat: /var/run/ps_init.pid: No such file or directory
ps_init running as
ps_init not running for root!
But you still have these processes running:
USER GROUP PID PPID ELAPSED COMMAND
Run the
service XpressPlatform start
command and then verify that it is started theps_cksys
command. You should see output similar to the following:
ps_init running as 7079
The following processes are running under ps_init: 7079 for root
USER GROUP PID PPID ELAPSED COMMAND
USER GROUP PID PPID COMMAND
root root 7079 1 /usr/sipxpress/bin/ps_init
root root 7090 7079 /usr/sipxpress/bin/ps_eventdispatcher -offline -local 172.31.0.169 -partner 172.31.0.168 -virtual 172.31.0.170
root root 7091 7079 /usr/sipxpress/bin/ps_httpd -offline -local 172.31.0.169 -partner 172.31.0.168 -virtual 172.31.0.170
postgres root 7092 7079 python2 /usr/sipxpress/bin/xpressworkx_data_services -offline -local 172.31.0.169 -partner 172.31.0.168 -virtual 172.31.0.170
root root 7093 7079 /sbin/runuser -p -s /bin/sh - tomcat -c /usr/sbin/tomcat_icr start
root root 7094 7079 /bin/bash /usr/sipxpress/bin/xpressworkx_web_services
Note
In the Object panel of Console, the primary NIU should show a yellow icon because it is standby and the secondary NIU should show a green icon because it is active.
Note
If the restart is not successful, try stopping and starting Service Delivery Platform again. If the restart fails again, contact Customer Support.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If calls are not being completed successfully, do not proceed to the next step.
On the secondary NIU, run the ps_haswitch
utility.
On the secondary NIU, run the ps_hastatus
utility to ensure that the local node has a state of offline and the partner node has a state of online.
Note
Do not proceed to the next step if the local node has a state of offlining because database replication will be incomplete.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If calls are not being completed successfully, do not proceed to the next step.
Go to the directory where the RPM file was uploaded before the upgrade.
Run the yum install <filename>
command.
Verify the install and then wait for the install to complete.
Run the service XpressPlatform stop
command and then verify that it is stopped with the ps_cksys
command.
Run the service XpressPlatform start
command and then verify that it is started the ps_cksys
command.
Note
In the Object panel of Console, the primary NIU should show a green icon because it is active and the secondary NIU should show a yellow icon because it is standby.
Go to the directory where the RPM file was uploaded before the upgrade.
Run the yum install <filename>
command.
Verify the install and then wait for the install to complete.
In the Object panel, right-click the application that you want to stop.
Click Stop.
Select the Stop Application Gracefully check box to allow each running session to complete its current iteration before stopping.
Click Yes.
Verify that another AS has active application sessions.
Run the service XpressPlatform stop
command and then verify that it is stopped with the ps_cksys
command.
Run the service XpressPlatform start
command and then verify that it is started the ps_cksys
command.
In Console, verify that the applications restarted and have active sessions on the AS.
Note
You may have to manually restart each application if not configured for automatic restart in the ps_master_config.xml file.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If calls are not being completed successfully, do not proceed to the next step.
Repeat step 12 through step 16 for each additional AS one at a time.
Perform the following steps after the upgrade is complete.
Verify that the primary NIU is active and the secondary NIU is standby by running the ps_hastatus
command on the primary NIU.
Verify access to the web UI by logging in to any installed application using a supported web browser. If you get an error when trying to access the web UI, try running the systemctl restart xpressworkx_web_service
command on the primary NIU.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If the system is not responsive after an upgrade, contact Customer Support.
This update can be done successfully without service interruption or impact on system traffic. In general, updates should still be performed at a time when call traffic is minimal or during a maintenance window.
Perform the following steps a few days prior to the upgrade window.
Download the application update RPM file from the Customer Portal.
Upload the RPM file to a directory, such as /home, on the primary NIU.
Log in to the primary NIU via SSH and go to the directory where the RPM file was uploaded.
Run the ls
command to make sure that the uploaded RPM appears in the list.
Run the md5sum <filename>
command to verify the checksum. If the checksum is not valid, download and upload the RPM file again.
Verify that the primary NIU is active and the secondary NIU is standby by running the ps_hastatus
command on the primary NIU. You should see output similar to the following:
Local node status:
Services: Online
Cluster: Running
Network: Up
Heartbeat: Up
Private network address: 111.22.333.444
Private heartbeat address: 111.22.333.444
Partner node status:
Services: Offline
Cluster: Running
Network: Up
Heartbeat: Up
Private network address: 111.22.333.555
Private heartbeat address: 111.22.333.555
Create a copy of cron by running the crontab -l
command on the primary NIU and AS. Copy the displayed output, paste it to a text editor or notepad, and save the file.
Optional. Verify that the web UI is showing CDRs with timestamps that are within the configured CDR materialized view cron rate. Note that timestamps in the web UI are based on Universal Time Coordinated (UTC).
Confirm that the Ansible version on both the primary NIU and the secondary NIU is later than 2.4 and earlier than 2.9 using the ansible --version
command.
Confirm that the Application Manager version on the primary NIU is 1.4 or later using the xpressworkx_app_manager version
command.
Perform the following steps during the upgrade window.
Select the application in the Object panel.
Expand the Logs folder.
Select the PS_SysLog.txt file.
Note
If calls are not being completed successfully, do not proceed to the next step.
Optional, but recommended. Take a pre-upgrade VM snapshot for each NIU and AS.
Log in to the primary NIU as root.
Run the sudo -u postgres pg_dump --verbose --clean --create -f /var/opt/xpressworkx/app-manager/database/postgresql/$(date +%Y-%m-%dT%H-%M-%S)-<application short name>.pgdump <application short name>
command.
Note
The backup files created by this command will be located in /var/opt/xpressworkx/app-manager/database/postgresql.
Go to the directory where the RPM file was uploaded.
Run the yum install <filename>
command.
Verify the install and then wait for the install to complete.
Run the xpressworkx_app_manager install <application short name> <version number>
command.
Wait for the update to complete.
If the update is successful, a list of IP addresses for each AS will be displayed with the status of ok or changed. If the status is failed, contact Customer Support.
Important
Read the release notes for the specific application and version that was upgraded and follow the steps, if any, in the Upgrade Procedure Notes section. These additional steps may include restarting Platform, restarting the application, or just running a command. If additional steps are required on the NIUs, it is important that these steps are completed first before performing any additional steps required on each AS.
If it is required to restart Platform on the NIUs:
On the primary NIU, run the ps_haswitch
utility.
On the primary NIU, run the ps_hastatus
utility to ensure that the local node has a state of offline and the partner node has a state of online.
Note
Do not proceed to the next step if the local node has a state of offlining because database replication will be incomplete.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If calls are not being completed successfully, do not proceed to the next step.
Run the service XpressPlatform stop
command and then verify that it is stopped with the ps_cksys
command. You should see output similar to the following:
cat: /var/run/ps_init.pid: No such file or directory
ps_init running as
ps_init not running for root!
But you still have these processes running:
USER GROUP PID PPID ELAPSED COMMAND
Run the
service XpressPlatform start
command and then verify that it is started theps_cksys
command. You should see output similar to the following:
ps_init running as 7079
The following processes are running under ps_init: 7079 for root
USER GROUP PID PPID ELAPSED COMMAND
USER GROUP PID PPID COMMAND
root root 7079 1 /usr/sipxpress/bin/ps_init
root root 7090 7079 /usr/sipxpress/bin/ps_eventdispatcher -offline -local 172.31.0.169 -partner 172.31.0.168 -virtual 172.31.0.170
root root 7091 7079 /usr/sipxpress/bin/ps_httpd -offline -local 172.31.0.169 -partner 172.31.0.168 -virtual 172.31.0.170
postgres root 7092 7079 python2 /usr/sipxpress/bin/xpressworkx_data_services -offline -local 172.31.0.169 -partner 172.31.0.168 -virtual 172.31.0.170
root root 7093 7079 /sbin/runuser -p -s /bin/sh - tomcat -c /usr/sbin/tomcat_icr start
root root 7094 7079 /bin/bash /usr/sipxpress/bin/xpressworkx_web_services
Note
In the Object panel of Console, the primary NIU should show a yellow icon because it is standby and the secondary NIU should show a green icon because it is active.
Note
If the restart is not successful, try stopping and starting Service Delivery Platform again. If the restart fails again, contact Customer Support.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If calls are not being completed successfully, do not proceed to the next step.
On the secondary NIU, run the ps_haswitch
utility.
On the secondary NIU, run the ps_hastatus
utility to ensure that the local node has a state of offline and the partner node has a state of online.
Note
Do not proceed to the next step if the local node has a state of offlining because database replication will be incomplete.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If calls are not being completed successfully, do not proceed to the next step.
Run the service XpressPlatform stop
command and then verify that it is stopped with the ps_cksys
command.
Run the service XpressPlatform start
command and then verify that it is started the ps_cksys
command.
Note
In the Object panel of Console, the primary NIU should show a green icon because it is active and the secondary NIU should show a yellow icon because it is standby.
If it is not required to restart Platform on the NIUs:
Run the specified command or commands on both the primary NIU and the secondary NIU.
If it is required to restart Platform on each AS:
In the Object panel, right-click the application that you want to stop.
Click Stop.
Select the Stop Application Gracefully check box to allow each running session to complete its current iteration before stopping.
Click Yes.
Verify that another AS has active application sessions.
Run the service XpressPlatform stop
command and then verify that it is stopped with the ps_cksys
command.
Run the service XpressPlatform start
command and then verify that it is started the ps_cksys
command.
In Console, verify that the applications restarted and have active sessions on the AS.
Note
You may have to manually restart each application if not configured for automatic restart in the ps_master_config.xml file.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If calls are not being completed successfully, do not proceed to the next step.
Repeat step 1 through step 4 for each additional AS one at a time.
If it is required to restart only the application on each AS:
In the Object panel, right-click the application that you want to restart.
Click Restart.
Select the Stop Gracefully and Restart on a new XTML server check box to allow each running session to complete its current iteration before stopping.
Click Restart.
In Console, verify that the application restarted and has active sessions on the AS.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Note
If calls are not being completed successfully, do not proceed to the next step.
Repeat step 1 through step 3 for each additional AS one at a time.
Perform the following steps after the upgrade is complete.
Verify that the primary NIU is active and the secondary NIU is standby by running the ps_hastatus
command on the primary NIU.
Run the crontab -e
command.
Update cron to match the copy of cron output that was saved prior to upgrading.
Verify access to the web UI by logging in to the updated application using a supported web browser. If you get an error when trying to access the web UI, try running the systemctl restart xpressworkx_web_service
command on the primary NIU.
Make tests calls or view the PS_SysLog.txt file in Console to ensure successful call traffic.
Optional. Verify that the web UI is showing CDRs.
Note
CDRs will not appear in the web UI until the xpressworkx-cdr-synchronize
cron job has run for that application.
Note
If the system is not responsive after an upgrade, contact Customer Support.
Should something go wrong with the upgrade and it is required to rollback the installation using the database backup, perform the following steps.
Note
This will be service disrupting, if the failed upgrade hasn’t already affected service.
Run the service XpressPlatform stop
command on both NIUs.
On the Primary NIU, run the sudo -u postgres /usr/sipxpress/bin/xpressworkx_data_services
command to start the database separately from the rest of the Platform.
Note
The database will run continuously in the window the command is entered into, so another window will be required for the following step.
On the Primary NIU, run the sudo -u postgres psql -f /var/opt/xpressworkx/app-manager/database/postgresql/<backup>.pgdump
command, where <backup.pgdump
is the name of the database backup that was saved previously.
In the window from step 2, use ctrl+C
to stop the data services.
Run the service XpressPlatform start
command on the Primary NIU. Once the Platform is running, run the command on the Secondary NIU.
Follow the steps for installation, using the previously installed version of the application.
Note
It may be required to run the yum downgrade
command using the RPM for the previously installed version in order for that version to be installed using xpressworkx_app_manager
.
After upgrading the Evolve IMSWorkX application as normal, perform the following steps to complete the PostgreSQL upgrade to version 12. This upgrade is service affecting, so it is recommended to complete it during a maintenance window. New installations will automatically use PostgreSQL version 12.
Verify that the system is operating normally and that the primary NIU is online with the secondary NIU replicating.
Run the service XpressPlatform stop
command on the secondary NIU to stop the Service Delivery Platform.
Run the xpress_pg_upgrade
command on the primary NIU to stop the Service Delivery Platform and begin the database upgrade.
Note
The amount of time that it will take for the upgrade to complete will vary based on database size, but allow for 30 minutes.
Note
An SQL dump will be written automatically in case of a failure after upgrading that requires a rollback. This requires disk space for a full database dump in /var/lib/pgsql/imsworkx_dump.
After the upgrade is complete, run the service XpressPlatform start
command on the primary NIU to start the Service Delivery Platform.
Note
An application restart may be required. Read the release notes for the specific application and version that was upgraded and follow the steps, if any, in the Upgrade Procedure Notes section.
Verify that the primary NIU is online by running the ps_hastatus
command, that logging from the xpressworkx_data_service
shows the database as online but not replicating yet, and that you can sign in to the web UI and make changes without errors.
Note
If the system is not responsive at this point, contact Customer Support for assistance with performing a system rollback.
Run the service XpressPlatform start
on the secondary NIU to start the Service Delivery Platform. The database version will be detected as 12 and the database will be resynchronized for replication.
Verify that the secondary NIU is offline by running the ps_hastatus
command and that logging from the xpressworkx_data_service
shows the database as offline and replicating from the primary NIU.
Note
If database replication is not occurring successfully, contact Customer Support.
Perform a System Rollback
If the database upgrade is not successful, you may need to perform the following steps to terminate the upgrade and rollback the system before the secondary NIU replicates the new version of the database from the primary NIU. Contact Customer Support for assistance with performing a system rollback.
Run the service !XpressPlatform stop
command on the primary NIU to stop the Service Delivery Platform.
Run the service !XpressPlatform start
command on the secondary NIU to start the Service Delivery Platform.
Verify that the secondary NIU is online with PostgreSQL version 9.4 by running the ps_hastatus
command and that all application functionality is available.
Run the service !XpressPlatform start
command on the primary NIU to start the Service Delivery Platform. The database version will be detected as 9.4 and the database will be resynchronized for replication.
Verify that the primary NIU is offline with by running the ps_hastatus
command.
Optional. Perform a failover back to the primary NIU once the system appears stable.
This document presents information for users of Evolve Cellular Inc. (“Evolve”) products. Although the information contained within this document is considered accurate and characteristic of the subject product, Evolve reserves the right to make changes to this document and any products described herein to improve reliability, functionality, or design.
Evolve does not assume any liability arising out of the application or use of any product or service described herein. No part of this document may be copied or reproduced in any form or by any means without the prior permission of Evolve.
These commodities, technology or software may only be exported from the United States in accordance with the Export Administration Regulations and other applicable laws and regulations. Diversion contrary to U.S. law is prohibited.
This document is the sole property of Evolve Cellular Inc.
Evolve is a registered trademark of Evolve Cellular Inc.
Linux is the registered trademark of Linus Torvalds in the United States and other countries.
Oracle, Oracle Database Standard Edition, Oracle Database Standard Edition One, and Java are registered trademarks of Oracle and/or its affiliates.
Festival Speech Synthesis System is developed and maintained by the Center for Speech Technology Research at the University of Edinburgh.
Other names may be trademarks of their respective owners.