What is Oracle Cloud Infrastructure (OCI) Queue?

OCI Queue is a highly available, high-throughput queue service capable of ingesting millions of messages per second. Users can publish, consume, and delete messages in Queue and also update the visibility of a message.

What protocols does the Queue service use to communicate?

OCI Queue supports RESTful APIs with SDKs as well as STOMP.

When will the strict ordering (FIFO queues) feature be available?

The Queue supports standard queues (best-effort ordering). FIFO queues (strict ordering) is a future feature, and we don’t yet have a timeline for it. Please raise a support request or communicate with your OCI account manager if this is a requirement.

Service Limits

What SLAs does OCI Queue offer?

OCI Queue offers an SLA of 99.9% uptime with a maximum of seven days retention for messages.

How do I increase the limit for my tenancy?

You can increase some limits by raising a support request.

Are there any limits to using the OCI Queue APIs?

A throttling mechanism is activated when the following thresholds are exceeded:

Parameter Customer soft limit
Throughput throttle limit 10MB/sec ingress and 10MB/sec data egress per queue (soft)


How do I set up my integrated development environment (IDE) to start using the Queue service?

Example code can be found in the Oracle DevRel GitHub repository, or follow the following steps to configure your IDE.

  • 1. Create a new project.
  • 2. If you are using Maven, you can reference our SDK in your pom.xml.



How do I use the SDKs?

Some SDK features are demonstrated in examples included in the public GitHub repositories for OCI Queue.

Where can I find the list of all the APIs I need for queueing?

We provide the following APIs:

Queue Management APIs

  • ListQueues
  • CreateQueue
  • GetQueue
  • UpdateQueue
  • DeleteQueue
  • ChangeCompartment
  • PurgeQueue
  • GetWorkRequest
  • ListWorkRequest
  • ListWorkRequestLogs
  • ListWorkRequestErrors

Messaging APIs

  • PutMessages
  • GetMessages
  • DeleteMessage(s)
  • UpdateMessage(s)
  • GetStats

Where can I find the list of API errors?

Details about API errors are in the documentation.


Can I push messages to the queue while purging it?

The purge call is eventually consistent; what this means is that it will delete all messages published before the purge call, but it might also delete some messages published while the queue is in the purging state (more strictly in Updating state with Purging lifecycle state details). The PutMessages call is not blocked during the purge operation, but its messages may be deleted.

It is guaranteed that purged messages will not be returned by the GetMessages call and will not affect the queue statistics. Still, the message deletion process is asynchronous and may take some time. During that time, update and delete operations for the purged messages will succeed, provided you have a valid receipt.

Does OCI Queue support the automatic deletion of messages after processing?

No, the client should invoke the DeleteMessage API to delete a message after successfully processing it. Otherwise, the message will be returned to the queue (after a visibility timeout) and returned during a subsequent Get request.