Understanding the Messaging Framework

This chapter discusses:

Click to jump to parent topicDashboard Architecture

This section discusses:

Click to jump to top of pageClick to jump to parent topicData Transfer

PeopleSoft dashboard applications are built on two complementary systems:

This diagram shows the movement of data from a PeopleSoft database to the dashboard:

High-level messaging architecture

Data moves from the PeopleSoft system to the dashboard system through the following process:

  1. Relevant data changes within the PeopleSoft transactional system are registered with the messaging framework.

  2. The messaging framework publishes a Java Messaging Service (JMS) message to which Enterprise Link subscribes.

    Enterprise Link is an Extract, Transform, and Load (ETL) tool within Oracle BAM.

  3. After Enterprise Link performs any necessary transformations, the data is saved to ADC data objects.

    Data objects are the ADC equivalent of database tables.

  4. The dashboard viewer immediately updates its display to reflect data changes.

As the diagram shows, data also moves from the dashboard to the PeopleSoft transactional system. This occurs when a user submits an action from within the dashboard system.

Note. The data structure that is used in the ADC is known as a star schema. The Oracle BAM documentation discusses the ADC data structures.

Click to jump to top of pageClick to jump to parent topicData Manipulation

As data is sent from PeopleSoft to the ADC, it requires these changes:

The Enterprise Link plans that process incoming data include steps to convert native-key references to other records into the appropriate surrogate key. For example, in the Case data object, there is a field where the case status is identified by its surrogate key. If the case status table has a value of Open with a surrogate key of 123, then open cases need to have the value 123 in their case status field. When a message arrives with data for an open case, Enterprise Link looks up the surrogate key for the Open case status and ensures that the case data in the ADC is saved with the appropriate surrogate key.

Occasionally a native-key reference to another record cannot be resolved. For example, if you create a new case status in the PeopleSoft system, there could be a situation where a case with that status arrives in the dashboard system before the new case status record arrives. In this situation, Enterprise Link uses the surrogate key value of -1, which has a corresponding description of Unknown.

It is also possible to have records where there is no native-key reference available. In this situation, Enterprise Link uses the surrogate key value of -2, which has a corresponding description of None.

Click to jump to top of pageClick to jump to parent topicIntegration Setup

A JMS server must be available and configured for dashboard messaging, and a PeopleTools Integration Broker dashboard node must be configured with the appropriate URL for the JMS server’s Java Naming and Directory Interface (JNDI) service.

This PeopleBook does not describe the necessary JMS and Integration Broker setup. Instead, refer to the dashboard installation documentation.

See PeopleSoft Enterprise Customer Relationship Management 9 Supplemental Installation Guide

Click to jump to top of pageClick to jump to parent topicCustomization Considerations

PeopleSoft dashboard applications are built on the Oracle BAM platform. Use these Oracle BAM tools to modify the delivered system:

Modifications to the delivered dashboard applications (other than security configuration) are considered customizations and are unsupported other than the support for Oracle BAM.

Refer to your Oracle BAM documentation for more information.

Click to jump to parent topicThe Messaging Framework

This section discusses:

Click to jump to top of pageClick to jump to parent topicMessaging Framework Elements

The messaging framework is the mechanism by which data from PeopleSoft applications is sent to the dashboard system. The framework includes these elements for processing online changes:

The two message queues are:

The framework also includes the Batch Data Load Application Engine process (PT_CDB_BATCH). This facilitates batch data loads by creating message queue entries for objects that you specify. CRM dashboard applications use a separate process, the CRM Initial Data Load Application Engine process (RBD_INIT_DRV), to optimize performance for the high-volume initial load of CRM data.

To maximize performance for the messaging framework, you can set up parallel processing of the messages for each dashboard application. Multiple Process Scheduler servers are required to support parallel processing of online changes. The CRM Initial Data Load process supports parallel processing with either multiple Process Scheduler servers or with one Process Scheduler server with multiple AESRV process instances.

See Also

PeopleSoft Enterprise Customer Relationship Management 9 Supplemental Installation Guide

Click to jump to top of pageClick to jump to parent topicThe Message Queues

There are two types of entries in the message queues:

Message queue entries always include an object identifier (for example, case, lead, or order), an application ID (for example, Sales or Order Capture) and the entry type—single or batch.

Single-Instance Queue Entries

When an online user updates a relevant transaction, the system populates the message queue with minimal identifying information about the object whose data is to be sent to the dashboard. (“Relevant” transactions are determined based on which dashboard applications have been installed.) Because the message queue requires only basic identifying information about an object, items can be added to the queue with minimal impact on the online user.

When the Change Notification process handles a single-instance message queue entry, it calls an object-specific application class to fetch the rest of the data that needs to be transmitted to the dashboard. The application classes that PeopleSoft delivers for this purpose are optimized to bring over only data that is considered relevant to a dashboard user—that is, data that is either used in a delivered report or that could be useful to an organization that is creating additional, custom, reports.

Batch Data Load Queue Entries

Message queue entries for batch data loads are typically the result of some other process. There is a general purpose Batch Data Load page where you can submit requests for batch data loads, and there is a CRM-specific page for performing initial data loads. PeopleSoft CRM also has additional processes that create message queue entries for batch loads. For example, there is a daily process that creates an entry for currency exchange rates, resulting in a daily refresh of all currency exchange rate information in the dashboard system.

Message queue entries for batch data loads do not include any data other than the object type and the fact that it is a batch data load. When the Change Notification process handles a batch load message queue entry, it calls the same object-specific application class that is uses to fetch data for single-instance entries. It also passes the application class the information that this is a batch load request. The object-specific application class includes a method that selects the appropriate instances of the object.

For some objects, such as the currency exchange rate load, a batch load processes all rows of data. Typically, batch loads of dimension tables will send all rows of data.

For other objects, the application class is more selective. In PeopleSoft CRM, there is a setup component where implementers enter criteria for the batch loading of certain objects, and the application class reads the settings in this component to determine which rows of data to return to the Change Notification process. Typically, batch loads of transaction tables are more selective. For example, an organization can choose not to load closed cases that are more than three months old.

Queue Processing

After the object-specific application class returns the relevant data to the Change Notification process, the process packages the data into XML messages that it then sends to the dashboard system. A single message can contain data from more than one object, though all objects must be the same type. For example, one message can contain data from multiple cases, but not from a mix of cases and leads. This bundling improves performance.

When you define dashboard settings in the PeopleSoft system, you can set a maximum message size. However, data from a single object is never split into multiple messages. Although it is unlikely that a single object would generate data in excess of the maximum message size, if this were to happen, the message would exceed the maximum.

The system sends the XML messages to the JMS server for the dashboard system. Within Enterprise Link, an Enterprise Message Source (EMS) that you established at installation time, subscribes to the message. Enterprise Link plans, which perform the transformations to be applied to the data, process the data and save it to the ADC.

Message queue entries are not deleted until the PeopleSoft system receives an acknowledgement from the JMS server. If message receipt is not confirmed, PeopleSoft reprocesses the queue entries. This architecture ensures that data is not lost if the system goes down or the messaging connection is broken.

Click to jump to top of pageClick to jump to parent topicThe Change Notification Process

The following diagram illustrates the Change Notification process:

Change notification process

These steps describe the process that the diagram illustrates:

  1. An online change or a batch data load request creates message queue entries.

  2. If the Change Notification process is not already running, the daemon that was set up at installation time reacts to the arrival of items in the message queue by starting the Change Notification process.

  3. The Change Notification process marks the current set of entries in the change notification queue as being in process.

  4. The Change Notification process queries the current set of marked entries to consolidate entries for the same object type.

  5. For each object ID, the Change Notification process collects the data that is to be sent to the dashboard.

    To do this, the Change Notification process invokes the application class that is appropriate for the object type.

  6. The Change Notification process builds an XML message containing the object data for the changed objects.

    A single message can include data for multiple queue entries for the same type of object. Bundling the data this way reduces traffic and individual message processing overhead.

  7. The message is published to a JMS server.

    JMS messaging is handled through the application server for online processes and through process scheduler for batch processes.

  8. The JMS server acknowledges the receipt of the message and the Change Notification process removes the entries that were marked as “in process” from the change notification queue.

    If there is an error, the Change Notification process will retry the operation. If neither an error nor an acknowledgement is received, the entries remain in process and are therefore sent again during the next pass of the Change Notification process.

  9. The Enterprise Link EMS that subscribes to the message receives the message.

  10. The dashboard system processes the message, updates the ADC, and updates any reports that are being displayed.

  11. The Change Notification process checks for new entries in the queue:

If errors occur during the Change Notification process, the error is recorded in the daemon log, the queue entry that was not processed is returned to the “Waiting for Processing” status, and the system adds one to a counter that tracks how many times the affected entry has been tried. A queue entry that fails three times is removed from the queue.

It is important for an administrator to review the daemon log periodically to see if queue entries have been removed without being processed. The daemon log is a standard feature of PeopleSoft Process Scheduler.

See Also

Enterprise PeopleTools PeopleBook: Process Scheduler