Introduction
In Oracle Integration Cloud (OIC), asynchronous requests decouple the client from the backend process using a fire-and-forget message-queuing mechanism. This pattern maximizes throughput, protects downstream systems from spikes in traffic, and makes efficient use of integration resources.
Great to know! However, we did introduce a service limit; on this with the 26.07 release this is based on the number of message packs assigned to the OIC instance.
We also recently introduced a new service metric - Async Queue Depth -
Now back to the new service limit - the actual formula is built up as follows -
Take the number of messages per hour and multiply that by 10. That, essentially is the limit on the potential size of your async queue.
A simple example - I have 1 message pack assigned to my OIC instance, so this equates to 5000 * 10. That gives us a 50k limit on the queue size. This is like saying I can cope with a spike of 10 times the usual number of requests, or in other words, I have a 10 hour backlog.
We do add a buffer on top of this; in the case of a 1 message pack OIC instance, this insures the 50001th message will not be rejected. However, you should focus on the limit for the number of message packs you have assigned, and not rely on the buffer.
As you can see, the upper limit is 600k, however, this can be increased, if necessary. For such, you would need to contact Oracle, open an SR etc.
Hitting the Limit
I will run a test on an OIC 26.07 instance, but, before doing that, let's check the Async Queue Depth service metric for that instance -
I will run the following async integration that, in turn, invokes a sync integration. The sync integration includes a WAIT, set to 120 seconds.
That's how I build up the queue.
I check the service metrics and see the queue building up - the service metric query I use is as follows - AsyncInboundRequestsDepth[1m]{resourceId = "yourOCID"}.grouping().max()
I run another 20k test -
Here the queue levels out, i.e. it does not increase. Note the buffer I've been given is ca. 10%, but, as already mentioned, please do not rely on this.
I now run the same async integration from within OIC -
429 Too Many Requests
{"type":"429","title":"Too busy right now. Please retry later.","detail":"The service is temporarily busy. Please retry later."}
Alarm on 80% of Queue Limit
Let's create an OCI Alarm to ensure we get informed when the queue reaches 80% of its limit.
As you can see, I am using a pre-existing topic.
I run another load test -
Please be aware of this new limit, especially if you are prone to huge spikes in traffic. Again, this limit can be raised Please contact your friends at Oracle Support if you need > 600k.
Cerevisia aestiva
As it's summer, the next set of posts will contain an extra section on the beers I'm drinking this summer.The Latin word for beer is cerevisia, which surfaces in the Spanish, cerveza. Aestiva is the Latin for summer.
The first beer I'll review is from Dorn Bräu, a brewery based in the Franconian town of Bruckberg, about 20 km away from me. It's a family owned brewery, founded in 1685, so these guys know what they're doing.
This beer is what the Germans call "süffig". There is no direct English translation. The word I got was quaffable, but sure who uses that word today?
This beer is what the Germans call "süffig". There is no direct English translation. The word I got was quaffable, but sure who uses that word today?
Net, net - this is a "helles" - that means golden in colour, smooth malty taste and low in bitterness. At 5%, it's the usual strength of German beer. A great everyday beer!
