CDH Series – How to Unfreeze Context Dictionary Page?

There can be an ‘N’ number of ways to look at a problem and an equal number of ways to solve it but we provide the best tip to minimize debugging efforts to solve it faster. There can be an ‘N’ number of ways to look at a problem and an equal number of ways to solve it but we provide the best tip to minimize debugging efforts to solve it faster. 

Let’s see our tip here. 

What should we do when we see a frozen screen like below? Even after you restart or re-login, if you still see this issue then there is a serious problem with the setup. Lets understand it better! 

First, let us understand what happens in the background when we trigger the context dictionary save operation.  It’s an asynchronous operation when you click the ‘save’ button. So, the platform enables the ‘save’ button only when the job is done successfully, or else it won’t.   

Trigger Point 

There is a DSS (Dynamic System Settings) variable which does this trick. By default, they initialize to ‘false value and sets it to ‘true’ when the context dictionary save operation is triggered.  

So ‘Save’ button on the Context Dictionary page in App Studio is controlled by this variable. If the value is true in any case, you don’t see that ‘Save’ button enabled.   

Now with the above your information, you should be able to start investigation 😊 but it can’t help you to solve it. If you have this button enabled, you have now an option to investigate by triggering it again. So you got a lead now! 

Investigate it in a style 

Let’s get into the problem which we highlighted here. Let’s try to understand few basics here. App Studio’s context dictionary settings page has two ‘Definitions’ and ‘Audit Log’. In the Audit log tab, the platform lists if there are any errors while performing this save operation?  

If Pega can list down those errors and providing for us to investigate then why the screen gets frozen? We mean, why the platform is unable to reset the above-mentioned DSS variable? 

I think you got it almost, right? It might due to unhandled exceptions? Yes, the operation fails to update the audit log or reset variables because of possible unhandled runtime errors! 

Now, if you can trace out the session by resetting the variable and trigger context save operation then you must be able to get few possible exceptions like below which we can categorize as  

  1. Library Compilation Issues (If there are issues at CDH installation log) 
  1. Database Connection Issues (If there are permissions issues or driver issues) 

In this example, we tried to reproduce the problem statement and seen as below when we traced the session. 

com.pega.pegarules.pub.runtime.LibraryFunctionNotFoundException: Failed to extract 'pegamkt_engine_pegamktutilities'        at com.pega.pegarules.generation.internal.library.LibraryRuntime.resolveAndinvokeFunctionViaReflection(LibraryRuntime.java:195) ~[prprivate-generation.jar:?]         at com.pega.pegarules.generation.internal.library.LibraryRuntime.invokeLibraryRuntime(LibraryRuntime.java:123) ~[prprivate-generation.jar:?]         at com.pega.pegarules.generation.internal.library.LibraryFunctionUtilityImpl.resolveMethodCall(LibraryFunctionUtilityImpl.java:2932) ~[prprivate-generation.jar:?] 

Solution 

We have solved it by reimporting the CDH bundle again & corrected any database connection issues. 

Tips and Tricks 

We hope that we provided you a quick trick of what you should do when you see the frozen screen like above when you set up a context dictionary for the first time or anytime! Just reset the variable and trace it resolves it. 

Help the community to grow better 

Thanks for reading and please do re-share the blog/tip to help your friends. 

We are here to help the community to grow better & bigger. Please recommend our PegaOOTB community to your colleagues and friends. 

Leave a comment

I’m Kondal

Hello, I’m Kondala Rao, known as Kondal. With extensive IT experience spanning product development, solution consulting, and business conduct, my passion lies in hands-on experimentation with the latest features of the Pega Platform and other low-code/no-code platforms to benefit businesses. Whenever I get free time, this blog is a space where I share insights, tips, and tutorials to help you leverage these technologies effectively.

I believe that even if one person benefits from my insights, it enriches my purpose to serve better. Join me on this journey of exploration and learning, and let’s elevate our skills together.

Happy Reading!!!

Let’s connect