According to our measurements, APIs of cloud applications typically have an error rate a factor 100 to 1.000 higher than on-premise applications. This also holds for use within business hours / SLA-covered hours.
Invantive SQL provides significant business value by gracefully common and uncommon communication errors with cloud APIs. However, it can not cover all your business scenario and it remains important to mitigate your business risks by testing your procedures for enterprise-critical applications of Invantive SQL in scenarios where communication problems can have a business impact.
This article explains you how to simulate typical cloud connectivity issues for OData and/or REST-based cloud API’s.
Instructions
Perform the following steps to simulate a typical cloud connectivity issue:
- Start Invantive Query Tool.
- Connect to a connector which supports simulation of communication errors, such as Visma.net or Exact Online. In this scenario we will use Visma.net.
- First disable all caches to ensure that all SQL statement directly transform into actual cloud API calls:
set use-http-disk-cache false
set use-http-memory-cache false
- Activate simulation of on average 25 HTTP 400 errors per 100 calls:
set simulate-http-400-errors true
set simulate-http-400-percentage 25
- Select all partitions:
use all
- Run a query:
select *
from financialperiods
- The query will now raise an error, such as shown in the picture:
Initial tries and optional retries (when configured) can be analyzed through the view SessionIOs@DataDictionary
which contains all I/Os of the current session, including whether they were succesful:
select *
from sessionios@datadictionary
order
by id desc
The following types of errors can be simulated by setting connector attributes:
Type | Activate | Configure Error Percentage |
HTTP 400 | simulate-http-400-errors | simulate-http-400-errors-percentage |
HTTP 403 | simulate-http-403-errors | simulate-http-403-errors-percentage |
HTTP 429 | simulate-http-429-errors | simulate-http-429-errors-percentage |
HTTP 500 | simulate-http-500-errors | simulate-http-500-errors-percentage |
Timeout | simulate-http-timeout-errors | simulate-http-timeout-errors-percentage |
Protocol | simulate-http-protocol-errors | simulate-http-protocol-errors-percentage |
All connector attributes are listed on the connector-specific documentation on https://documentation.invantive.com.