Simulate Cloud API Connection Problems

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.