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.

Troubleshooting: "Failed to resave page" with ReSaver Servlet

Updated on September 25, 2019

Symptom

When running the V4.2 ResaverServlet, messages similar to the following may occur:

Resaving instances of AtPega-Task (Class: 1 of 9)                Saved 0 instances of AtPega-Task         Resaved 0 instances for AtPega-Task (0 of 0) Resaving instances of AtPega-Task-Support (Class: 2 of 9)                Saved 0 instances of AtPega-Task-Support         Resaved 0 instances for AtPega-Task-Support (0 of 0)        
Resaving instances of AtPega-Task-Support-Request (Class: 3 of 9)
Error: Failed to resave page: Database-LockFailure-LockLost  ATPEGA-TASK null (Key: Resave)
Error: Failed to resave page: Database-LockFailure-LockLost  ATPEGA-TASK SR-1 null (Key: Resave)
Error: Failed to resave page: Database-LockFailure-LockLost  ATPEGA-TASK SR-10 null (Key: Resave)
Error: Failed to resave page: Database-LockFailure-LockLost  ATPEGA-TASK SR-100 null (Key: Resave)

Update: This issue is resolved in V5.1+.

Solution

Explanation

The Resaver Servlet opens each instance of a specified class and resaves them. In V4.2SP4 and earlier, this process does not involve locking any of the instances - just an open followed by a resave. However, as a result of security enhancements in V4.2SP2 SmartBuild, classes that have locking enabled must have a lock in order to save them, so errors occur.

Workaround for V4.2SP2, V4.2SP3, and V4.2SP4:

By default, the pegarules.xml file sets the transactionalLockManagement entry to Advanced, which enables the enhanced security. Setting this entry to Standard allows the system to save all classes without requiring locking.

NOTE: If the default setting is enabled, the entry may not be in the pegarules.xml file. To change the entry to Standard, add the following line to the database section of the pegarules.xml file:

<node name="database">
<map>
     <entry key="storageVersion" value="6"/>
     <entry key="transactionalLockManagement" value="Standard"/>
   </map>

Important: If you make this change, then be certain to:

  1. Stop and restart the Process Commander server
  2. Change the pegarules.xml file back to the Advanced setting after you finish using the ResaverServlet servlet.

If the you don't change the setting, then the data integrity of the system data is at risk.

Resolution For V4.2SP5:

Check the Lock instances check box.

If this check box is selected, then the ResaverServlet locks any (lockable) class instance that it is saving. Checking this box makes the ResaverServlet processing safer (although slower); you can run it while others are using the server.

If the box is not checked, then the ResaverServlet forces all instances to be saved without a lock. As a result, if a user is updating an instance while the ResaverServlet is running, then the user's updates may be overwritten.

Accordingly, as a best practice, check the Lock instances box.

  • Previous topic Refactoring unsupported symbolic index syntax for value lists and page lists
  • Next topic Troubleshooting: "Failed to resave page" with Resave Table feature

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