Skip to main content
LinkedIn
Copied!

Table of Contents

Operator Presence troubleshooting FAQs

This article provides answers to frequently asked questions about Operator Presence. This article also describes the changes implemented in Pega 8.5 and later versions.

Introduction

Answers to Frequently Asked Questions

Deviations from Hazelcast implementation in Pega 8.5 and later versions

 

Introduction

Operator Presence tracks the real-time connection status of operators so that you can route work to operators that are online and available. The Presence record holds the aggregated state of an operator along with other Standard attributes. It contains information related to all the sessions of an operator. The option to set Custom attributes to an operator is also available.

Operator Presence data is stored in the Distributed Maps of Hazelcast in Pega 8.4 and earlier versions. Presence data is stored in the database in Pega 8.5 and later versions.

Answers to Frequently Asked Questions

Attempting to log in as an operator, I see the error message, The current session is blocked, as the maximum number of active sessions for the current operator has been reached. How do I resolve this issue?

You can configure the maximum number of Active sessions for an operator. The Active sessions count is fetched from the Operator Presence record. Scenarios like Split Brain of Hazelcast cluster occur when an operator session is updated incorrectly and you are blocked from logging into the application.

To address this issue, invoke the following API from Java step by passing the operator ID to the API: pega.getSystemOperationsProvider().getPresenceSessionManagementAPI().clearPresenceSessions(operatorId);

This issue does not occur on Pega 8.5 and later versions because the Presence storage is moved to the database.

What is the reason for the occurrence of this error in logs: The message exceeds recommended size of 8000 (Size: 2846021). Topic: NM-DATA-ADMIN-OPERATOR-ID. Start of message: Class:Data-Admin-Operator-ID, Type:null, Context:{"StandardAttributes":{"OperatorID":"mashupuser","N..." ?

The Pega Web Mashup is configured to use a Template operator. A new entry is added to the Template Operator’s Presence record each time the Mashup loads. This results in the increase in the size of the Operator Presence record. Hence, the error occurs.

This issue is addressed in Pega 8.3.4 and Pega 8.4.2. Any operator with more than 10 active sessions is added to the BlackList operator Dynamic System Setting (DSS).

Alternatively, perform the following local change:

Place the operator on the deny list by adding the operator ID to the following Data Admin System Setting (DASS) manually:
Pega-Engine : operatorpresence/blacklisted/operators

This DASS is a comma-separated list of operator IDs.
Any operator added to this DASS setting is not considered for Operator Presence related flows.

The issue does not occur in Pega 8.5 and later releases because the Presence storage is moved to the database.

How to query a Presence record?

Presence Query Service provides Query clauses (for example, IN, CONTAINS, EQUALS clauses) that are similar to the Database clauses. To query the Operator Presence data, use the API provided in the Presence Service. Querying Presence data is similar to querying database.

For more information, see Tracking the online presence of operators.

Why are the Custom attributes on my operator record not cleared even after I have logged out from the session?

Custom attributes are cleared only if all the sessions of an OperatorID are logged out from the system. You can also clear the Custom attributes by invoking the following API in the Java step of the activity: tools.getPresenceService.clearCustomAttributes(OperatorId,CustomCategoryName);

Why does the IllegalStateException occur in logs 
Exception;java.lang.IllegalStateException: Unable to retrieve attribute definition for a field.Tenantshared FieldIndex:2 MapContents:attributeTocacheFieldMapper:;
{shared|CustomerService|.CustomAttributes.CSRStatus:0}
 ?

This issue occurs due to Hazelcast Cluster instability. To resolve the issue, perform a Cluster restart. However, the issue is addressed in Pega 8.2.

Is it okay to disable Operator Presence?

Do not disable Operator Presence. Some of the out-of-the-box features like Customer Service routing, Notification Gadget, and Max Concurrent sessions for each operator use Operator Presence.

Deviations from Hazelcast implementation in Pega 8.5 and later versions

Operator Presence data is stored in the Hazelcast Distributed map in Pega 8.4 and earlier versions. However, it is stored in the database in Pega 8.5 and later versions. Therefore, consider the following factors when working with Operator Presence in Pega 8.5 and later versions.

Fields not stored in Standard attributes
LoggedIn Time
SetAttributes API

User queries
APIs for fetching Presence records
Custom attributes not cleared during cleanup

 

Fields not stored in Standard attributes

The following fields are not stored in the Standard attributes:

  • GeoLocation
    Updating Geolocation in the OperatorRecord through special handling is not supported.
  • Operator name
    Operator name is not stored in the Presence record.
  • Status
    Status is plain text.
    Status needs to be stored in the Custom attributes if it needs to be used.

LoggedIn Time

In the Hazelcast implementation, LoggedInTime is the oldest logged in time of all the sessions.

In the Database implementation, LoggedInTime is the oldest time of active sessions. If no active sessions exist, then LoggedInTime is empty.

SetAttributes API

The following two versions of SetAttributes API are available in the Hazelcast implementation:

  • With overwrite
    Existing data is overwritten with the data provided by user.
  • Without overwrite
    Existing data is merged with the data provided by user.

In the Database implementation, only one API is present. The Clipboard page provided is merged with the existing Clipboard page.

Factors to consider

Consider the following factors when working with Custom attributes for Operator Presence:

  • PageList properties are not supported in Custom attributes because merging PageList property values is not supported. However, PageGroup properties are supported in the Custom attributes.
  • Custom attributes have a Pega class in Pega 8.5. This data can be obtained by performing Obj-Open and Obj-Save methods. However, do not perform Obj-Open and Obj-Save methods for the Custom attribute data. Use the Query API to obtain the data and the SetAttributes API to save the data. In the Hazelcast implementation, map is used instead of Pega class.
  • To clear an attribute value, use the property.clearValue() API, instead of the Page.remove(prop) API.

User queries

User’s queries on Custom attributes apply only to active sessions.
 

APIs for fetching Presence records

The following API fetches the Presence record of a specific operator:
tools.getPresenceService().getPresenceRecord(String operatorId,  String customCategoryClassName)

The following API fetches all the Presence records:
tools.getPresenceService().getAllPresenceRecords(String customCategoryClassName)

 

Custom attributes not cleared during cleanup

Custom attributes are not cleared during clean-up in cases of node crash and cluster restart. This occurs even though no sessions exist for an operator.

Did you find this content helpful?

100% found this useful


Related Content

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Ready to crush complexity?

Experience the benefits of Pega Community when you log in.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us