EXPERIMENTAL: Burst handling

AS3 v3.19 introduces an experimental feature called burst handling. The purpose of burst handling is to manage scenarios where a burst of declaration requests are sent to AS3 at the same time.

Without burst handling, when sending multiple declarations to AS3 simultaneously, it rejects the subsequent requests with a 503 - Service Unavailable error and a message stating “Error: Configuration operation in progress on device, please try again in 2 minutes.”

With burst handling, AS3 processes each declaration one at a time, after the previous request has been completed. This feature queues almost any type of request (DELETE, POST, PATCH) if AS3 is currently busy processing another request. GET requests are the only requests that are designed to bypass the burst handling feature and get the current state of the machine at the moment they are sent; they do not have to go into the queue and wait to be processed along with the other requests.

Warning

This feature is currently EXPERIMENTAL, and thus not supported until it is fully integrated into AS3 in a future release.

This is an experimental feature, so there are currently a few caveats:

  1. Querying the /task endpoint can partially clear queued request records, resulting in an error when the queued request is processed. It is best to avoid querying this endpoint if you have more than 20 requests waiting to be processed.
  2. The burst handling queue currently has no limit, so if you accidentally fill it with 1000s of requests, you can restart AS3 by restarting the restnoded service (as shown below) and the queued requests will be cleared and not processed.

Before you can use burst handling, you must manually enable this feature in AS3. To enable it, you must modify the AS3 file /var/config/rest/iapps/f5-appsvcs/lib/config.js on the BIG-IP and change the line "burstHandling: false" to "burstHandling: true".

Once you have modified and saved the file, you need to restart AS3 by restarting restnoded with the command bigstart restart restnoded.

Note

Manually modifying this config.js file and restarting AS3 is only necessary while this feature is experimental. Once it is a part of AS3 and fully supported, AS3 will have a more appropriate way of configuring it.

AS3 should now be running with the burst handling feature enabled.