Calculate Requests Per Second

If a synchronous integration keeps timing out or is taking longer than usual to complete, the integration might be trying to process too many requests. Knowing the requests that your instance processes in a second helps you design synchronous integrations that deliver the fast responses that you need.

The requests-per-second calculation helps you determine the approximate number of concurrent requests that your system can receive from client applications. For example, when a mobile application calls Oracle Integration, how many concurrent requests from the mobile app can your instance process?
This calculation is specifically for synchronous integrations, for which Oracle Integration waits for a response from the target service. If you have an integration that completes a large task and needs a long time to run, Oracle recommends creating an asynchronous integration instead.
Note

  • Generally, the words "message" and "request" are synonymous. However, when you're working with large payloads, you might consume more than one message per request. This change impacts your calculations. See Monitor Billable Messages.

    The calculations in this section assume that every request is 50 KB or smaller.

  • This calculation is typically called TPS, or transactions per second. TPS doesn't apply directly to Oracle Integration for two reasons:

    • Oracle Integration processes requests, rather than transactions.
    • Sizing in Oracle Integration is based on the hourly consumption of messages, rather than the per-second consumption.

    The Oracle Integration equivalent to TPS is requests per second, which is your concurrency.

  1. Determine the approximate number of requests that an instance can process in one minute.
    1. Determine the number of message packs that you purchased per hour for the instance.

      For this example, we'll say that you have an Oracle Integration license and purchased 4 packs.

    2. Multiply the number of message packs by the number of messages in the message pack (5,000 messages for non-BYOL customers, and 20,000 messages for BYOL customers).

      For this example, we'll say that you're a non-BYOL customer, so your message packs contain 5,000 messages.

      4 message packs x 5,000 messages per hour = 20,000 requests per hour

    3. Divide the number of hourly requests by 3,600 to determine your approximate per-second capacity.

      20,000 requests per hour / 3600 = 5.6 requests per second

    4. Multiply the per-second requests by 2; an instance can typically handle about twice your purchased capacity.

      5.6 requests per second x 2 = 11 requests per second

  2. Calculate your concurrency (the number of concurrent requests your system can handle from client applications).
    1. Determine the typical response time in seconds.

      For example, run a few requests and check the response times in the activity stream timestamps. See Track Business Identifiers in Integrations During Runtime in Using Integrations in Oracle Integration Generation 2.

      The response time can vary depending on circumstances. When the volume of transactions increase in your instance, your response times might also increase.

      For this example, we'll say that your response time is 5 seconds.

    2. Multiply the number of requests you can process per second by the response time.

      11 requests per second x 5 seconds = 55 concurrent requests

      This value is your approximate concurrency.

Example 6-1 Processing the maximum number of concurrent requests

Let's take a look at a sample request queue when an instance that can handle 55 concurrent requests is working at full capacity.

The following table illustrates how requests arrive and complete as each second passes. The total requests in the queue increase until they reach 55 and remain at 55 indefinitely. After 5 seconds (the response time), requests start completing.

Time that has elapsed Requests that arrive Requests that complete Total requests in the queue

1 second

11

0

11

2 seconds

11

0

22

3 seconds

11

0

33

4 seconds

11

0

44

5 seconds

11

11

55

6 seconds

11

11

55

7 seconds

11

11

55

8 seconds

11

11

55

Example 6-2 Exceeding the maximum concurrent requests

Imagine the same instance is receiving a higher number of requests per second than the maximum concurrency value. The following table illustrates how quickly the number of requests in the queue can build, even when you exceed the concurrency by just a few requests. After 3 seconds, the instance has already exceeded its maximum number of concurrent requests, and within 8 seconds, the instance is dealing with twice the maximum number of concurrent requests.

If an integration is likely to exceed the instance's maximum concurrency, the integration is probably going to experience timeouts when built as a synchronous integration. Instead, build the integration as an asynchronous integration.

Time that has elapsed Requests that arrive Requests that complete Total requests in the queue

1 second

20

0

20

2 seconds

20

0

40

3 seconds

20

0

60

4 seconds

20

0

80

5 seconds

20

11

89

6 seconds

20

11

98

7 seconds

20

11

107

8 seconds

20

11

116

Use the Cost Estimator Tool to Determine Your Monthly Bill

Oracle provides a cost estimator tool to help you determine your monthly usage and bill for Oracle Integration.

  1. Go to the cost estimator tool.
  2. From the Select category list, choose Integration.
  3. In the Application Integration box, click Load.

    The Services, Compute shapes, Reference architectures, My favorites, and Advanced Search tabs are shown. The Services tab is selected. The Select category list shows Integration selected. A Search field appears to the right. Below this are boxes named API Management and Application Integration. Both boxes include a Load button.

  4. Follow the instructions on the page to calculate your costs.
    The estimated monthly cost is displayed.