Configure Push Notifications

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:

  1. 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]}"
    
  2. Firewall needs to be configured to allow communication from ps-apps-01 and ps-apps-02 to ps-prcs-01:8988 and ps-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.

  3. Firewall needs to be configured to allow communication from ps-prcs-01 and ps-prcs-02 to ps-apps-01:7988 and ps-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:

  1. In application server configuration, define distinct “Domain ID”s (aka [Domain Settings]\Domain ID), e.g.

    • AS1 on ps-apps-01
    • AS2 on ps-apps-01

    values can be any valid sting for [Domain Settings]\Domain ID, as long as they are distinct

  2. In process scheduler server configuration, define “PrcsServerName”s (aka [Process Scheduler]\PrcsServerName), e.g.

    • PS1 on ps-prcs-01
    • PS2 on ps-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.

  3. On each application server domain and process scheduler domain, enable Inter-Domain Communication and Push Notifications

  4. Setup Application Server

    1. 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)

    2. Assemble the following string using the known information

      "AS1|PS-APPS-01:7988,AS2|PS-APPS-02:7988"
      

      notice AS1 comes from (1), while ps-apps-01:7988 comes from NWADDR in (4.1). The multiple application server domain connection strings are separated by a “,” with no space.

    3. 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
      
  5. Setup Process Scheduler

    1. 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

    2. 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

    3. 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
      
  6. 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.

  7. 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>)
    
  8. In PIA, navigate to “PeopleTools > Web Profile > Web Profile Configuration”. In “Custom Properties”, if not already there, set property EnablePNSubscriptions to true, save the profile and restart the Web Server domain.

  9. 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

  10. Run XRFWIN and verify that slide-in notifications are occuring and alerts are populated under Notification Center.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax