Unable to save cost drivers, "Server is busy. Please try again later. If issue still persists, contact the system administrator." is seen when attempted.
search cancel

Unable to save cost drivers, "Server is busy. Please try again later. If issue still persists, contact the system administrator." is seen when attempted.

book

Article ID: 367511

calendar_today

Updated On:

Products

VCF Operations/Automation (formerly VMware Aria Suite)

Issue/Introduction

  • When attempting to edit the server cost drivers in Aria Operations it fails to save and gives the following error: "Server is busy. Please try again later. If issue still persists, contact the system administrator."
  • A message similar to the following is present in /storage/log/vcops/log/web.log:INFO [ajp-nio-127.0.0.1-8009-exec-22] com.vmware.vcops.ui.util.MainPortalListener.log - No result defined for action com.vmware.vcops.ui.action.CostDriverAction and result input ( Url: /ui/costDriver.action Params: mainAction=saveServerGroups )

Environment

Aria Operations 8.x

Cause

This issue is due to struts limitation of data being sent as payload. Struts framework has reduced the payload size to a much smaller value. Hence the save isn't working.

Resolution

Workaround for versions prior to Aria Operations 8.18.x:

An immediate workaround is to export the cost drivers, edit the spreadsheet, then re-import it:

  1. From the left menu, click Configure > Cost Drivers > Cost Drivers tab. In the Cost Drivers tab, select either Import or Export.
  2. The import and export functionality is applicable only for vCenter cost drivers, the functionality is not available for VMware Cloud on Amazon Web Services.
  3. Using the import and export option, you can perform the following actions on the cost drivers:
    • Export or import the cost driver configuration file.
    • Read and edit the cost driver configuration file.
    • Validate the updated cost driver configuration file and report errors.
    • Identify the error from the log file and correct the errors.

You are prompted with error messages if the uploaded file has errors. You can correct the errors and upload the file, or you can ignore the errors, the system still allows you to upload the file.

Workaround for Aria Operations 8.18.x:

Determine the payload size for modifying struts.xml configuration with appropriate values:

  1. Log into the Aria Operations interface using an admin account.
  2. Go to Configurations > Cost > Cost Drivers.
  3. Enable Developer Mode in Chrome Browser:
    Press Ctrl + Shift + I (Windows) or Cmd + Option + I (Mac) to open the Developer Tools.
    Click the three-dot menu in the upper-right corner of the browser, then select More Tools > Developer Tools.
  4. Choose the Server Group that requires editing, and make any necessary changes to the values.
  5. Access the Network Tab in Developer Tools:In the Developer Tools window, go to the Network tab.Locate and select the Payload section related to the action being performed.
  6. Copy the entire payload data from the Payload tab and paste the copied data into a Notepad or any text editor.
  7. In the Notepad (or text editor), review the payload data and check the size of the file (you can use the properties of the file or check the word count in some editors).


Modify struts.xml Configuration:

Based on the size of the payload data, increase the value for struts.multipart.maxStringLength in the struts.xml configuration file. Follow the steps below to modify this setting:

  1. Take snapshots of the Aria Operations cluster
  2. SSH to each Aria Operations node.
  3. Navigate to the appropriate directory.
    cd /usr/lib/vmware-vcops/tomcat-web-app/webapps/ui/WEB-INF/classes/
  4. Make a backup of the struts.xml file
    cp struts.xml struts.xml.old
  5. Edit the struts.xml file.
    vi struts.xml
  6. Modify the line shown below, changing the value from "16384" to "32678".(Based on the size of the payload determined in previous section)
    FROM:
    <constant name="struts.multipart.maxStringLength" value="16384"/> 
    
    TO:
    <constant name="struts.multipart.maxStringLength" value="32678"/>
  7. Save and close the file.
  8. Restart the UI service on all the nodes.
    service vmware-vcops-web restart
  9. Test the change by editing the value again in the UI.

Note: This is a workaround and will not persist after an upgrade. Please repeat the workaround steps once the deployment is upgraded.

Additional Information

This is a known issue and will be fixed in a future release.