There are several different types of queues that you can use in a WebSphere MQ Everyplace environment. The following are the types of queue that are available in the WebSphere MQ Everyplace development package:
The simplest type of queue is a local queue. This type of queue is local to, and owned by, a specific queue manager. It is the final destination for all messages. Applications on the owning queue manager can interact directly with the queue to store messages in a safe and secure way, excluding hardware failures or loss of the device.
You can use local queues either online or offline, either connected or not connected to a network. Queues can also have security attributes set, in a very similar manner to protecting messages with attributes. Security, discusses queue security in more detail.
Access to messages on local queues is always synchronous, which means that the application waits until WebSphere MQ Everyplace returns after completing the operation, for example a put, get, or browse operation.
The queue owns access and security and may allow a remote queue manager to use these characteristics, when connected to a network. This allows others to send or receive messages to the queue.
For more detailed information about local queues, see .
A remote queue is a local queue belonging to another queue manager. This remote queue definition exchanges messages with the remote local queue.
WebSphere MQ Everyplace can establish remote queues automatically. If you attempt to access a queue on another queue manager, for example to send a message to that queue, WebSphere MQ Everyplace looks for a remote queue definition. If one exists it is used. If not, queue discovery occurs.
WebSphere MQ Everyplace discovers the authentication, cryptography, and compression characteristics of the real queue and creates a remote queue definition. Such queue discovery depends upon the target being accessible. If the target is not accessible, a remote definition must be supplied in some other way. When queue discovery occurs, WebSphere MQ Everyplace sets the access mode to synchronous, because the queue is now known to be synchronously available.
Synchronous remote queues are queues that can be accessed only when connected to a network that communicates with the owning queue manager. If the network is not established, the operations return an error. The owning queue controls the access permissions and security requirements needed to access the queue. It is the application's responsibility to handle any errors or retries when sending or receiving messages, because, in this case, WebSphere MQ Everyplace is no longer responsible for once and once-only assured delivery.
Asynchronous remote queues are queues used to send messages to remote queues and can store messages pending transmission. They cannot remotely retrieve messages. If the network connection is established, messages are sent to the owning queue manager and queue. However, if the network is not connected, messages are stored locally until there is a network connection and then the messages are transmitted. This allows applications to operate on the queue when the device is offline. As a result, these queues temporarily store messages at the sending queue manager while awaiting transmission.
A store-and-forward queue stores messages on behalf of one or more remote queue managers until they are ready to receive them. This can be configured to perform either of the following:
A store-and-forward queue stores messages associated with one or more target queue manager destinations. Messages addressed to a specific or target queue manager are placed on the relevant store-and-forward queue. The store-and-forward queue can optionally have a forwarding queue manager name set. If this name is set, the queue attempts to send all its messages to that named queue manager. If the name is not set, the queue just holds the messages.
Store-and-forward queues can hold messages for many target queue managers, or there may be one store-and-forward queue for each target queue manager.
This type of queue is normally, but not necessarily, defined on a server or gateway in Java only. Multiple store-and-forward queues can exist on a single queue manager, but the target names must not be duplicated. The contents of a store-and-forward queue are not available to application programs. Likewise a message sending application is quite unaware of the presence or role of store-and-forward queues in message transmission.
WebSphere MQ Everyplace has a similar dead-letter queue concept to WebSphere MQ. Such queues store messages that cannot be delivered. However, there are important differences in the manner in which they are used.
The use of dead-letter queues with an WebSphere MQ bridge needs special consideration. Refer to the chapter on the WebSphere MQ bridge in the WebSphere MQ Everyplace Configuration Guide for more details.
The administration queue is a specialized queue that processes administration messages.
Messages put to the administration queue are processed internally. Because of this applications cannot get messages directly from the administration queue. Only one message is processed at a time, other messages that arrive while a message is being processed are queued up and processed in the sequence in which they arrive.
This type of queue usually resides on a client and points to a store-and-forward queue on a server known as the home-server. The home-server queue pulls messages from the home-server store-and-forward queue when the client connects on the network.
In Java, home-server queues normally have a polling interval that causes them to check for any pending messages on the server while the network is connected.
When this queue pulls a message from the server, it uses assured message delivery to put the message to the local queue manager. The message is then stored on the target queue.
Home-server queues have an important role in enabling clients to receive messages over client-server connections.
This type of queue is always defined on a WebSphere MQ Everyplace gateway queue manager and provides a path from the WebSphere MQ Everyplace environment to the WebSphere MQ environment. The WebSphere MQ bridge queue is a remote queue definition that refers to a queue residing on a WebSphere MQ queue manager.
Applications can use put, get, and browse operations on this type of queue, as if it were a local WebSphere MQ Everyplace queue.
For more detailed information about the WebSphere MQ bridge queue, see .
Information on setting up and administering the various types of queues is provided in .