Tasks Planning for high availability | Select a message store type
Messaging reliability
The JMS spec supports two modes of delivery for JMS messages:
- Persistent
- Non-persistent
The WebSphere administrator can select the mode of delivery on the JMS destination (queue/topic) configuration:
- Application (persistence is determined by the JMS client)
- Persistent
- Non-persistent
Messages can also have a quality of service attribute that specifies the reliability of message delivery. Different settings apply depending on the delivery mode of the message. The reliability setting can be specified on the connection factory and, for the default messaging provider, on the bus destination. Reliability settings set at the connection factory apply to all messages using that connection factory, though we can opt to let the reliability settings be set individually at the bus destination.
Each reliability setting has different performance characteristics...
- Best effort non-persistent
- Express non-persistent
- Reliable non-persistent
- Reliable persistent
- Assured persistent
There is a trade-off between reliability and performance to consider. With increasing reliability levels of a given destination, performance or throughput of that destination is decreased. There is a default setting that is configured when the destination is created, but this can be overridden by message producers and consumers under certain circumstances.
The following questions apply here:
- What is more important for each type of message, reliability or performance?
- How heavy is the workload for the messaging engines?
- What are the implications of message loss due to server failure?
- What is the expectation?