Configuring push notifications for mobile apps

By using push notifications, you can notify workers about assigned work, such as emergency work orders. Push notifications can be enabled for both the IBM® Maximo Inspector app and the IBM Maximo® Technician apps. You can enable push notifications for both Android and iOS devices.

Before you begin

Before you configure push notifications for mobile apps, ensure that you:
  • Install the Maximo Asset Management limited availability fix for push notifications and the interim fix or limited availability fix for Maximo Integration Framework, depending on your version of Maximo Asset Management. For more information, see Setting up push notifications.

  • Install the Maximo Anywhere application container. For more information, see Installing the Maximo Anywhere application container.

In Maximo Asset Management, ensure that the Java™ Message Service (JMS) queues are configured for either your WebLogic Server or your WebSphere® Application Server.

Android devices must be registered with Google and have internet connectivity to access Google services. iOS devices must be registered with Apple and have internet connectivity to access Apple services.

If your organization has a firewall that restricts the traffic to or from the internet, ensure that your firewall accepts outgoing connections from your Maximo Asset Management server to android.googleapis.com.

For Maximo Asset Management server, the Maximo Anywhere push notification rules are configured as part of Maximo Asset Management, which uses Maximo Integration Framework, endpoints, and JMS services to push notifications to the device.

About this task

Push notification is the ability of a mobile device to receive messages that are pushed from a server. Notifications are received regardless of whether the app is running. Each app that is enabled for push notifications has an adapter for this capability.

In Maximo Anywhere, the notifications allow the user to launch-in-context to the specific record.

Procedure

  1. On the Maximo Asset Management administrative workstation, in the install_home\maximo\applications\maximo\mboejb\ejbmodule\META-INF, rename the following files:
    File name New file name
    ejb-jar.xml ejb-jar-old.xml
    weblogic-ejb-jar.xml weblogic-ejb-jar-old.xml
    ibm-ejb-jar-bnd.xmi ibm-ejb-jar-bnd-old.xmi
  2. Edit and uncomment the NOTF MDB text blocks in the following files:
    • ejb-jar-notf.xml
    • weblogic-ejb-jar-notf.xml
    • ibm-ejb-jar-bnd-notf.xmi
  3. Rename the files that you edited files as follows:
    File name New file name
    ejb-jar-notf.xml ejb-jar.xml
    weblogic-ejb-jar-notf.xml weblogic-ejb-jar.xml
    ibm-ejb-jar-bnd_notf.xmi ibm-ejb-jar-bnd.xmi
  4. Set up the Java Message Service (JMS).
    Option Description
    In WebSphere Application Server environments
    Add a logical address for the notification bus destination queue (NOTFBD) in the service integration bus:
    1. In the WebSphere Application Server Network Deployment administrative console, click Service Integration > Buses.
    2. Click intjmsbus and then, under Destination resources, click Destination.
    3. Click New, ensure that the Queue option is selected as the destination type, and click Next.
    4. In the Identifier field, enter NOTFBD and in the Description field, enter Notification Queue, then click Next. For the identifier, you must use this value and it must contain only uppercase letters.
    5. In the Bus Member drop-down list, choose Node=ctgNode01:Server=MXServer.
    6. Click Next, review your selections, and click Finish to complete the creation of the NOTFBD bus destination queue.
    7. Click Buses > intjmsbus > Destinations and click NOTFBD.
    8. Select None as the exception destination value, verify that Keep count of failed deliveries per message is enabled, and click Apply and then Save.
    Create the NOTF JMS queue:
    1. From the WebSphere Application Server Network Deployment administrative console, click Resources > JMS > Queues.
    2. In the Scope drop-down list, choose Node=ctgNode01:Server=MXServer and click New.
    3. Verify that the Default Messaging Provider option is selected and click OK.
    4. In the Name field, enter NOTF. This value must contain only uppercase letters.
    5. In the JNDI name field, enter jms/maximo/int/queues/notf.
    6. In the Bus name field, enter intjmsbus.
    7. In the Queue name field, enter NOTFBD and click OK and then Save.
    Enter the activation specifications:
    1. From the WebSphere Application Server Network Deployment administrative console, click Resources > JMS > Activation specifications.
    2. In the Scope field, enter Cell=ctgCell01, Node=ctgNode01, and Server=WLServer, and click New.
    3. Verify that Default Messaging Provider is selected and click OK.
    4. In the Name field, enter notfact.
    5. In the JNDI name field, enter notfact.
    6. In the Destination JNDI name field, enter jms/maximo/int/queues/notf.
    7. In the Bus name field, enter intjmsbus.
    8. In the Maximum batch size field, enter 10.
    9. In the Maximum concurrent MDB invocations per endpoint field, enter 5 and click OK and then Save.
    In WebLogic Server environments
    1. In the WebLogic Server Administration Console, go to Services > Persistent Stores, and create the following file stores:
      • sqinstore
      • cqinstore
      • sqoutstore

      For each file store, specify an existing directory in the system, for example, c:\jms, and set each target value to AdminServer.

    2. Go to Services > Messaging > JMS Servers and create three JMS Servers and set each target value to AdminServer:
      • sqinserver
      • cqinserver
      • sqoutserver

      For the sqinserver JMS Server, enter sqinstore for the persistent store. For the cqinserver JMS Server, enter cqinstore for the persistent store. For the sqoutserver JMS Server, specify sqoutstore for the persistent store.

    3. Go to Services > Messaging > JMS Modules, create a JMS module named intjmsmodule, and set the descriptor file name value to jms/intsmsmodule-jms.xml.
    4. Create four Queue type resources for the intjmsmodule module:
      • notf
      • sqin
      • sqout
      • cqin

      For the notf queue, specify jms/maximo/int/queues/notf for the JNDI name, create a new subdeployment with the same name, notf, and select notf as the target.

      For the sqin module, specify jms/maximo/int/queues/sqin for the JNDI name, create a new subdeployment with the same name, sqin, and select sqinserver for the target.

      For the sqout module, specify jms/maximo/int/queues/sqout for the JNDI name, create a new subdeployment with the same name, sqout, and select sqoutserver for the target.

      For the cqin module, specify jms/maximo/int/queues/cqin for the JNDI name, create a new subdeployment with the same name, cqin, and select cqinserver for the target.

    5. Create a Connection Factory type resource named intjmsconfact.

      For the intjmsconfact resource, specify jms/maximo/int/cf/intcf for the JNDI name.

      Go to Advanced Targeting and create a new subdeployment with the same name, intjmsconfact.

      Select AdminServer, sqinserver, sqoutserver, cqinserver as the targets.

      Set the XA option for the connection factory and then activate all the changes.

    6. Restart WebLogic Server.
  5. Start the Tivoli®'s process automation engine configuration tool and select Update the database with the UpdateDB Lite feature.
  6. If you did not enable push notifications when you installed Maximo Anywhere, copy the Firebase push notification certificates for each app to the Android and IOS directories. The certificates are the JSON files that you download when you register the applications with Fire base Cloud Messaging in the Firebase console.
    Table 1. Directories for push notification certificates
    Platform Application Directory
    Android IBM Maximo Inspector MaximoAnywhere\apps\Inspection\pushcertificate\android
    Android IBM Maximo Technician MaximoAnywhere\apps\WorkExecution\pushcertificate\android
    iOS IBM Maximo Inspector MaximoAnywhere\apps\Inspection\pushcertificate\ios
    iOS IBM Maximo Technician MaximoAnywhere\apps\WorkExecution\pushcertificate\ios
  7. If you did not enable push notifications when you installed Maximo Anywhere, in the maximoanywhere_home\Anywhere\MaximoAnywhere\apps\app_name directory, edit the app-feature.properties file for each app for which you are enabling push notifications. Locate the pushnotification.enabled property, and set this property to true. Save and close the file.
  8. Run the build all command.
  9. Build the container for the applications to enable Push Notification support. For more information, see Building the Maximo Anywhere application container.