Skip to main content


         This documentation site is for previous versions. Visit our new documentation site for current releases.      
 

This content has been archived and is no longer being updated.

Links may not function; however, this content may be relevant to outdated versions of the product.

Enable the UDF feature in JSP Lookup tag for best performance

Updated on September 10, 2021

PRPC 6.3 includes an optional performance enhancement for the <pega:lookup> JSP tag that, when enabled , extracts only the value of a single property from the pzPVStream column (commonly known as the BLOB column). However, by default, this feature is disabled.

Through a simple Dynamic System Setting, you can in most cases enable this feature and benefit from the performance improvement.

Even if your application includes no hand-crafted JSP tags, the lookup tag may be present in generated HTML and in standard rules, so the performance benefit is worth enabling.

The setting also improves the performance of linked property references.

Suggested Approach

One popular use for the the <pega:lookup ...> JavaServer Pages tag is to retrieve the value of a scalar (Single Value) property that's not present on the clipboard. In PRPC versions before V6.3, and in V6.3 by default, at runtime the <pega:lookup > tag retrieves the BLOB column of the instance that's not on the clipboard from the PegaRULES database, decodes it (creating a temporary clipboard page), and extracts the needed value. (This processing occurs even when the needed value is available more directly as an exposed column. )

Optionally, through a Dynamic System Setting, you can cause the <pega:lookup> JSP tag to execute a database User Defined Function (built into V6.3) to extract and return the property value. If the value exists as a column value, it is returned immediately. If the value exists only inside the BLOB column, it is extracted and returned. The full BLOB unpacking does not occur.

As a best practice, you should use only auto-generated section and controls in your application, thereby avoiding the complexity, possible security risks, and maintenance issues of hand-crafted HTML. As a result, your application RuleSets may not include hand-coded section or HTML rules that explicitly reference the <pega:lookup > tag. However, your application may include <pega:lookup > tags created by PRPC-provided generation, or may incorporate standard rules that are not autogenerated and do include this tag.

In either case, implementing the performance enhancement is straightforward and beneficial.

Note: This feature depends on database User Defined Functions (UDFs)supplied in PRPC 6.3. You can't implement this feature if your installer or DBA has disabled UDF support. UDFs also support reporting on unexposed properties.

Step 1: Create a dynamic system setting

Create a dynamic system setting named prconfig/cache/enableForlookup. As with all dynamic system settings that have prconfig as the first portion, set the Owning RuleSet to Pega-Engine.

Dynamic System Settings form

Don't confuse the Owning RuleSet value — always Pega-Engine for such settings — with the separate Associated RuleSet field, which can be blank or any value.

Step 2: Set the value to true

Set the Value to true. Save the form.

Dynamic System Settings form completed

Step 3: (Optional) Disable caching of retrieved values

By default, values retrieved for this tag — whether from the BLOB column or from an exposed column — are briefly cached at the Thread level on the users' clipboard. The cached values are discarded when the requestor completes any Commit operation.

This caching is designed to improve performance, since a second request for the same property value can be satisfied from the clipboard, requiring no database access. However, in certain situations, such caching may not be desirable. For example, your application may recompute values for this property through a declare expression rule, or may accept a user input value, so that the cached value is stale and potentially incorrect.

To disable such caching, you can include the attribute useCache = false within the lookup tag - but you can do this only in those rules containing handcrafted HTML. To disable such caching always, you can create another Dynamic System Setting prconfig/cache/enableForlookup and set the value to false :

Dynamic System Setting

If this Dynamic System Setting is not present, or exists with the value true, caching is enabled.

In a multinode system, you can append /default to the Setting Purpose to indicate that the value is to apply to every node.

Step 4: Stop and restart the server

The dynamic system settings take effect on a node when the node is restarted.

 

Additional information 

How to compose the key of a prconfig dynamic system setting

How to set prconfig values in a Dynamic System Setting value

Use linked properties to display data from related objects

  • Previous topic Effect of search encryption on performance
  • Next topic Exposing too many properties as database columns can affect performance

Tags

Pega Platform 7.1.1 - 8.3.1 System Architect System/Cloud Ops Administrator System Administration

Have a question? Get answers now.

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

Did you find this content helpful?

Want to help us improve this content?

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

Pega.com is not optimized for Internet Explorer. For the optimal experience, please use:

Close Deprecation Notice
Contact us