The Java Message Service (JMS) defines a standard way for different elements of a J2EE application to communicate with each other. With JMS, components do not access each other directly. Instead, a component posts a message to a message broker, which then distributes the message to other components. In general, the posting and delivery actions occur in separate transactions, and might even occur in different processes, machines, or sites. This mechanism decouples the actions of the sending and receiving components to so that the sender can continue with its work without having to wait for the receiver to process the message. This decoupling is often called asynchronous processing.

The JMS API defines the interfaces for sending and receiving messages. It also defines the semantics for message delivery and acknowledgement, and how message delivery should behave in a transactional environment. The API is intended to be flexible enough to allow applications to work with existing enterprise messaging products.

In this chapter

This chapter discusses JMS and the Oracle ATG Web Commerce Message System, which is a set of tools that Oracle ATG Web Commerce provides for working with JMS. The chapter includes the following sections: