Configure Push Notifications
Apr 26, 2017Dan Iverson
Thanks to Andy Dorfman for allowing us to guest-post his Push Notification setup. Andy did a lot of work to get Push Notifications working in a production environment and he’s sharing his notes. If you are looking to get Push Notifications running, this is a great place to start.
User Story
As a PeopleSoft user, when scheduling a process to run on a process scheduler, I would like to receive a Push Notification about the status of the process, as well as the link to the process output.
System Architecture:
-
2 application servers
- ps-apps-01
- ps-apps-02
-
2 process schedulers
- ps-prcs-01
- ps-prcs-02
Implementation:
Prerequisites:
-
Until fixed in PeopleTools, on each server in
PS_HOME\appserv\local_prcsgw.gbx
, at ~ line 50, enclose ACCESSPOINTID value by""
, i.e. change"PRCS_{$Inter-Domain Events\Process Scheduler Credentials[1]}" ACCESSPOINTID={$Inter-Domain Events\Process Scheduler Credentials[1]}
to
"PRCS_{$Inter-Domain Events\Process Scheduler Credentials[1]}" ACCESSPOINTID="{$Inter-Domain Events\Process Scheduler Credentials[1]}"
-
Firewall needs to be configured to allow communication from
ps-apps-01
andps-apps-02
tops-prcs-01:8988
andps-prcs-02:8988
, i.e. each application server needs to be able to reach both process schedulers on port 8988. It could potentially be possible to restrict source port range for greater security as well. -
Firewall needs to be configured to allow communication from
ps-prcs-01
andps-prcs-02
tops-apps-01:7988
andps-apps-02:7988
, i.e. each proces scheduler needs to be able to reach both application servers on port 7988. It could potentially be possible to restrict source port range for greater security as well.
Configuration:
-
In application server configuration, define distinct “Domain ID”s (aka
[Domain Settings]\Domain ID
), e.g.AS1
onps-apps-01
AS2
onps-apps-01
values can be any valid sting for
[Domain Settings]\Domain ID
, as long as they are distinct -
In process scheduler server configuration, define “PrcsServerName”s (aka
[Process Scheduler]\PrcsServerName
), e.g.PS1
onps-prcs-01
PS2
onps-prcs-02
values can be any valid sting. Developer statated that Application servers currently don’t look at ACCESSPOINTID for process scheduler domains and only care about the hostname:port, but if you want multiple Process Scheduler domains, the names have to be distinct regardless.
-
On each application server domain and process scheduler domain, enable Inter-Domain Communication and Push Notifications
-
Setup Application Server
-
On each application server, examine
PS_CFG_HOME\appserv\<DOMAIN>\interdom.gbb
. Pay special attention to uncommented lines that start with “AS_<Domain ID
>_<IPCKEY
>”, e.g."AS_AS1_53252" GWGRP=GWTGROUP ACCESSPOINTID="AS1_53252" CONNECTION_POLICY=ON_STARTUP "AS_AS1_53252" NWADDR="//PS-APPS-01:7988"
only NWADDR is important here, ACCESSPOINTID will be you Application Server Domain ID from (1)
-
Assemble the following string using the known information
"AS1|PS-APPS-01:7988,AS2|PS-APPS-02:7988"
notice
AS1
comes from (1), whileps-apps-01:7988
comes from NWADDR in (4.1). The multiple application server domain connection strings are separated by a “,” with no space. -
This string above would go into each process scheduler domain configuration under
[Inter-Domain Events]\Application Server Credentials
, either via psadmin custom configuration or manually[Inter-Domain Events] ;========================================================================= ; InterDomain Event settings ;========================================================================= Process Scheduler Port=8988 Application Server Credentials=AS1|PS-APPS-01:7988,AS2|PS-APPS-02:7988
-
-
Setup Process Scheduler
-
Similarly, note the setting
PS_CFG_HOME\appserv\prcs\<DOMAIN>\interdom.gbb
on each process scheduler domain:"PRCS" GWGRP=GWTGROUP1 ACCESSPOINTID="PRCS_PS-PRCS-01_PS1" CONNECTION_POLICY=ON_STARTUP "PRCS" NWADDR="//PS-PRCS-01:8988"
Both ACCESSPOINTID and NWADDR are important in this case
-
Assemble the following string using the known information
"PRCS_PS-PRCS-01_PS1|PS-PRCS-01:8988,PRCS_PS-PRCS-02_PS2|PS-PRCS-02:8988"
The format is
ACCESSPOINTID|NWADDR,ACCESSPOINTID|NWADDR
from (5.1). The multiple process scheduler connection strings are separated by ‘,’ with no space in between -
This string above should go into each application server configuration under
[Inter-Domain Events]\Process Scheduler Credentials
, either manually or through psadmin custom configuration menu, e.g.[Inter-Domain Events] ;========================================================================= ; InterDomain Event settings ;========================================================================= Process Scheduler Credentials=PRCS_PS-PRCS-01_PS1|PS-PRCS-01:8988,PRCS_PS-PRCS-02_PS2|PS-PRCS-02:8988 Application Server Port=7988
-
-
Clear IPC on each application server and process scheduler domain. Reconfigure and boot each application and process scheduler domain. The boot order does not matter, the ping happens every 60 seconds by default.
-
Verify that the communication is successfully taking place by examining TUXLOG on each domain, e.g.
094833.PS-APPS-01!GWTDOMAIN.3660.4520.0: LIBGWT_CAT:1128: INFO: Connection accepted from domain (domainid=<PRCS_PS-PRCS-01_PS1>)
-
In PIA, navigate to “PeopleTools > Web Profile > Web Profile Configuration”. In “Custom Properties”, if not already there, set property
EnablePNSubscriptions
totrue
, save the profile and restart the Web Server domain. -
Optionally, in PIA, navigate to “My Preferences” and in “Pop-up Notification” section, set “Yes” for all States and for “Enable Popup Notification”. This will allow slide-in notifications
-
Run XRFWIN and verify that slide-in notifications are occuring and alerts are populated under Notification Center.
Note: This was originally posted by Dan Iverson and has been transferred from a previous platform. There may be missing comments, style issues, and possibly broken links. If you have questions or comments, please contact [email protected].