If we expose new column to an existing table , then until Cluster Restart is done it is not reflected in all tier (App and Util) , say if you run a Queue Processor in Background Node , then it throws error says “Property not exposed” , If we do a test connection of the DB table / Class then it reflects in current tier (App) , but not in Util Tier , because if we run Queue Processor in Web Node (App Tier) it works but in background node (Util Tier) it fails , Only After Cluster Restart (App and Util) it starts working in background node .
Is there any way to avoid this Cluster Restart every time column is added ??
Try to save respective Class or Data-Admin-DB-Table instance once.(It worked 90% of times) I should remove the table(class) definition which cached in all nodes.(this is my understanding).
Yes , its works in App Tier , say there are 2 web node and 2 background node , now if we save DB instance (class we cannot save as it will locked , we can only do test connectivity) it reflects in both web node , but not in background node ..
Ideally it should update in all nodes, if not then I can think of some agents not running which updates across nodes. If that is not the issue, better raise a SR.
If you create a new column directly in database then you need to restart the cluster to let pega know about the new column or resave the database table instance.
If you do property optimization then pega should sync this information throughout the cluster, if that is not happening check if there is a problem with node syncing. That should system pulse for old pega version, hazlecast for newer pega version. In this case involve pega to finetune the node syncing.
I mainly faced this issue when we created the column directly on DB. in PEGA Cloud, we normally do not have DB access hence we expose columns using Property Optimization Wizard, I never faced this issue using Property Optimization Wizard. I don’t think it defer basing on framework as this PEGA core functionality(at least I hope so).