About Oracle Messaging Cloud Service

Oracle Messaging Cloud Service is one of the Infrastructure as a Service (IaaS) offerings. It provides a messaging system for applications to communicate reliably with each other, enabling application developers to share information across multiple applications.

Topics:

Oracle Messaging Cloud Service gives developers an easier and more reliable method to build complex, distributed systems of heterogeneous applications that may have fundamentally different underlying characteristics such as programming platform, system uptime, and network latency. In addition, businesses using Oracle Messaging Cloud Service do not require any special, dedicated hardware, and the service can be accessed by applications from anywhere over the Internet.

Oracle Messaging Cloud Service is heavily influenced by the Java Message Service (JMS) API specification, which is a standard messaging interface for sending and receiving messages between enterprise Java applications. For Java applications, Oracle Messaging Cloud Service provides a Java library that implements and extends the JMS 1.1 interface. The Java library implements the JMS API by acting as a client of the REST API. Any application platform that understands HTTP can also use Oracle Messaging Cloud Service through the REST interface. This means developers can use a single communication API to build reliable and robust communication between intra-cloud and extra-cloud applications.

Oracle Messaging Cloud Service uses wildcard certificates for HTTPS access. The use of wildcard certificates may require that client environments be configured to accept wildcard certificates in order to access Messaging Cloud Service. For example, if you are using Oracle WebLogic Server, then you can configure WebLogic Server’s SSL hostname verifier to accept wildcard certificates by referring to the Using a Custom Host Name Verifier topic in the Oracle Fusion Middleware Securing Oracle WebLogic Server guide.

About Messaging Concepts

In a messaging system, information is transmitted between clients (where a client is defined as a running instance of an application) in the form of messages. From the sending client, producers send messages to a destination. On the receiving client, consumers retrieve messages from a destination.

A destination is a type of named resource that resides within an Oracle Messaging Cloud Service instance. It is a repository for messages. Queues and topics are types of destinations to which messages can be sent.

Messages sent to a queue are received by one and only one consumer. A message sent to a queue is kept on the queue until the message is received by a client or until the message expires. This style of messaging, in which every message sent is successfully processed by at most one consumer, is know as point-to-point.

Messages sent to a topic can be received by multiple consumers or none. This style of messaging, in which each message can be processed by any number of consumers (or none at all), is known as publish/subscribe. To receive a message sent to a topic, a consumer that subscribes to the topic (the subscriber) must be connected to the topic when the message is sent by the producer (the publisher). That is, only clients that have a consumer connected to a topic will receive messages sent to that topic. If there are no consumers on the topic, messages sent to the topic will not be received by anyone, unless there are some durable subscriptions on the topic.

A durable subscription, which stores all messages sent to a topic, can be created to ensure that a publish/subscribe application receives all sent messages, even if there is no client currently connected to the topic. For example, if an application goes offline temporarily and has no consumers on the topic, the client will miss any messages sent to the topic. However, if there is a durable subscription, upon restarting the application, the application will be able to receive any messages sent to the topic during the time the application was not running.

Messages sent to a destination can be pushed to another destination or to a user-defined URL using message push listeners.

A connection and one or more sessions from a client associated with the connection are required to send and receive messages. A session sends messages through one or more producers and receives messages through one or more consumers.

For more information about these and other Oracle Messaging Cloud Service instance resources, see Developing Applications That Use Oracle Messaging Cloud Service.

Architecture Overview

The Oracle Messaging Cloud Service architecture is highly available and fault-tolerant.

Oracle Messaging Cloud Service provides a secure messaging solution for applications that require reliable asynchronous communication. The applications can be within Oracle Cloud as well as outside of Oracle Cloud.

The following diagram presents an architectural overview of Oracle Messaging Cloud Service:

About the Components of Oracle Messaging Cloud Service

Oracle Messaging Cloud Service includes the following components:

  • My Account and My Services

    These are applications that allow account administrators and service administrators to manage and monitor their Oracle Cloud service instances, including Oracle Messaging Cloud Service instances. My Account displays information about active, expired, and pending services for an entire account, across multiple data centers and identity domains, and lets administrators monitor the service status. My Services lets administrators monitor and operate all active services within a single identity domain. For more information about the administrative applications, see Overview of Managing Oracle Cloud Accounts and Services in Getting Started with Oracle Cloud.

  • JMS Broker

    The JMS broker is responsible for handling all administrative and control aspects of the messaging platform, including message persistence, message selection, and session management.

  • Message Push Listeners

    These are user-created resources that reside within an Oracle Messaging Cloud Service instance. A message push listener asynchronously receives messages from one destination and either sends the messages to another destination or pushes them to a user-defined URL as an HTTP request.

About the Interfaces to Oracle Messaging Cloud Service

There are two interfaces to Oracle Messaging Cloud Service.

The interfaces to Oracle Messaging Cloud Service are:

  • Java library

  • REST API

The following table summarizes the interfaces to Oracle Messaging Cloud Service:

Interface Description More Information

Java library

The Oracle Messaging Cloud Service Java library provides an implementation of the JMS 1.1 API for sending and receiving messages through the JMS broker. To download the Java library, see Downloading the Oracle Messaging Cloud Service Java SDK.

The Java library can be used from any environment connected to the Internet.

The Java library also provides APIs for managing instance resources such as queues, topics, durable subscriptions, and message push listeners.

Developing Applications That Use Oracle Messaging Cloud Service

Accessing Oracle Messaging Cloud Service Using Java Library

Java API Reference for Oracle Messaging Cloud Service

REST API

Oracle Messaging Cloud Service provides a REST API for sending and receiving messages, as well as managing instance resources such as queues, topics, durable subscriptions, and message push listeners.

The REST API can be used from any environment connected to the Internet.

Developing Applications That Use Oracle Messaging Cloud Service

Accessing Oracle Messaging Cloud Service Using REST API

Note:

Messages sent from one interface can be received through the other interface. Connections, sessions, producers, and consumers cannot be shared between the two interfaces.

About Resource Limits

Paid and trial subscriptions of Oracle Messaging Cloud Service have resource limits.

The following table shows the maximum number of messaging resources per service instance in paid and trial service subscriptions:

Resource Paid Subscription Trial Subscription

queues

10,000

5

topics

10,000

5

message push listeners

unlimited *

unlimited *

durable subscriptions

10,000

5

persisted messages per destination

Hard Quota: 100,000

Soft Quota: 70,000

For more information, see Hard and Soft Quotas.

Hard Quota: 100

Soft Quota: 70

For more information, see Hard and Soft Quotas.

bytes of persisted messages per destination

Hard Quota: 52,428,800 bytes

Soft Quota: 36,700,160 bytes

For more information, see Hard and Soft Quotas.

Hard Quota: 52,428,800 bytes

Soft Quota: 36,700,160 bytes

For more information, see Hard and Soft Quotas.

concurrent connections

10 (additional connections in units of 10 may be purchased)

10 (no upsize)

temporary destinations per connection

50

50

* implicitly capped by the number of concurrent connections

Hard and Soft Quotas

Oracle Messaging Cloud Service restricts both the number of persisted messages that can be sent to a destination but not yet consumed, and the number of bytes of persisted messages that can be sent to a destination but not yet consumed. These restrictions are expressed in terms of a hard quota and a soft quota on both the number and bytes of messages. Clients are allowed to send messages to a destination until the number and bytes of persisted messages on that destination reach the hard quota for either number or bytes of messages. Once the hard quota has been reached for a destination, further attempts to send to that destination will fail with an error until both the number and bytes of message on the destination fall below the soft quota. The hard and soft quotas are the same for all destinations in a given service instance.

For example, suppose the hard quota on number of messages for a queue Q is 100, and the soft quota is 70, there are 100 messages on Q, and a client attempts to send another persistent message, which would put Q over its hard quota on the number of messages. The send will fail, and further sends of persistent messages will continue to fail until at least 31 messages have been consumed from Q, causing it to fall below the soft quota on number of messages. This two-quota algorithm gives consumers on a destination a chance to "catch up" when the destination reaches its hard quota.

See Considerations When Developing Applications That Use Oracle Messaging Cloud Service for additional information about messaging resources.