Library generation
The system saves compiled CLASS files for library functions as disk files in each node. Use one of these procedures to compile one or more libraries. Some affect only your current node; others force eventual recompilation on all nodes of cluster.
- To compile a single library, open the Library form and click the Generate Library button on the Package tab. In a cluster, During system pulse processing by the Pega-RULES agent, that library is compiled on each node.
- To compile all libraries referenced in a ZIP archive you as you import the ZIP file, select the Compile Library checkbox on the Import Archive from ZIP form.
- To force immediate recompilation of one or all libraries, use the Administration > Rule Utility Library Extractor menu item of the System Management application. This compiles all libraries on the current selected node, and on compiles all libraries on each other node in a cluster at the next system pulse.
- To force compilation of all libraries when a node is next started, delete the Extract Marker file
PegaRULES_Extract_Marker.txt
. This affects only the node or nodes where you delete the file.
- To force compilation of all libraries every time a node is started, set the
extractLibraries
value in the prconfig.xml
file:
<env name="Initialization/extractLibraries" value="true" />
As an alternative to the prconfig.xml file, you can use Dynamic System Settings to configure your application.
See How to create or update a prconfig setting.
Your current RuleSet list is not relevant when you generate a library. The system compiles all versions of each function in the library. At runtime, users execute a version appropriate to their own RuleSet list.
Deleting a library
When you delete a library rule with the Delete () toolbar button, the system also deletes all function rules in the library (of all RuleSet Versions for the RuleSet ), and the assembled and Java-compiled functions in the library. In a multinode cluster, if you delete a library rule, the system pulse processing performed by the Pega-RULES agent on other nodes deletes the library and functions.
Overriding a standard function
To override a standard function:
- Create a library in your application RuleSet with the same name as the standard library that contains the function.
- Use Save As to copy the standard function into your library, retaining the function name.
- Update the function Java code as desired, being careful to consider the effect of your changes on existing calls to the function.
Do not reference or override any function or library in the Pega-WB RuleSet; they are reserved. The names and capabilities of these functions are subject to change.
Regenerating one or all libraries
You can extract and compile libraries through any of several facilities:
- After you upload one or more function rules into a PRPC system (such as through the Import Archive tool), the functions are not available until they are extracted from the rules into .JAVA files, assembled, and compiled. Select the Compile Library checkbox on the Import Archive from ZIP form to compile them on the current node.
- You can use the Administration > Rule Utility Library Extractor menu on the System Management application to force re-extraction and recompilation of all functions in all libraries on all nodes.
- At startup, the system examines the
PegaRULES_Extract_Marker.txt
file to determine whether to re-extract libraries from the PegaRULES database. When necessary, you can force extraction and recompilation of all functions in all libraries (on the current node).
- Stop the application server on the node.
- Delete the text file
PegaRULES_Extract_Marker.txt
file. - Restart the application serve. The system adds an INFO line to the Pega log noting the re-extraction. In a multinode system, repeat this on each node.
No check out, always available
Change library rules with care, noting these restrictions:
- Check-out () and Restore () operations are not available for library rules, even for RuleSets with the Use check-out? box selected.
- Library rules are always available. You cannot change the availability of a library rule to
No/Draft Mode
, Blocked
, Withdrawn
, or Final
. (However, you can change the availability of functions in the library, and then recompile the library.)
About Library rules