Support Article

ClassNotFoundException happening to various classes sporadically

SA-28648

Summary



An issue was encountered where some users were seeing ClassNotFoundExceptions. It was noticed that the PegaRULES_Extract_Marker.txt File was missing from the temp directory of the node the users were on. After a restart, the PegaRULES_Extract_Marker.txt was generated and the issue was fixed. It is not clear why the file was missing or if this was directly related to the errors being thrown. While all nodes experienced issues, it was noticed that the specific classes in the errors were not the same.


Error Messages



Problem invoking function: pega_wb_lookuplist.BuildSelect
java.lang.ClassNotFoundException: com.pegarules.generated.BuildSelect_071017_7v_GZpvlJJVIxisMd41o9g


Steps to Reproduce



Not applicable


Root Cause



A defect or configuration issue in the operating environment caused this issue. Prior to Pega 7.2.1, LibraryMetadataCache is loading only from the File System. Based on this information and the error message about the Pega-WB libarary, this suggests the associated file on the operating system is missing. It was deteremined that a script was in place to remove items older than 7 days from the Pega temp directory.  

Resolution



Make the following change to the operating environment: Files from the Pega temp directory should not be removed while the application is running. If a restart is not possible to resolve this in the short term, the following can be done while the application is running:

Using the error mentioned earlier as an example, search for BuildSelect_071017_7v_GZpvlJJVIxisMd41o9g in the following locations:
…\PegaTempDir\PRGenClasses\com\pegarules\generated
…\PegaTempDir\PRGenJava\com\pegarules\generated
 
If they do not exist, it’s possible to have resolved this by extracting the libraries from SMA. For example-
Problem invoking function: pega_wb_lookuplist.BuildSelect
 
The bolded text is the RuleSet and Library name separated by an underscore (also dashes in either part will be displayed as an underscore).
In SMA navigate to Administration > Rule Utility Library Extractor.
Enter the RuleSet and Library name, and then click the Extract Libraries button. For this example, Pega-WB and LookupList. 

Published September 29, 2016 - Updated November 12, 2016

Have a question? Get answers now.

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