Understanding why best effort nonpersistent messages are being discarded
A reliability level of best effort nonpersistent means that messages might be lost during normal functioning of the system, for example if the connection used to send the messages is busy. Although this is normal and expected, we might want to investigate the reasons for messages being lost.
Use this task when best effort nonpersistent messages are being discarded by a running system, and we want to understand the possible causes. For more information about best effort nonpersistent and other message reliability levels, see Message reliability levels - JMS delivery mode and service integration quality of service.
The following list explains some of the reasons for losing best effort messages:
- The destination queue or topic space is already full to a level higher than the high message threshold. To check whether this is the case, click Service integration -> Buses -> bus_name -> [Additional Properties] Destinations -> destination_name and under Message points click the relevant point type (for example, Queue points). Click the relevant message point to display its general properties, and compare the values of the High message threshold and Current message depth fields.
- The connection to the target system is down.
- The connection to the target system is busy. Any best effort messages that cannot be sent will be discarded.
- The system in general is busy, for example a messaging engine might be occupied processing higher reliability messages for another destination.
- There is a temporary network problem. Look in the error log for more information.
- A non-transactional message-driven bean generates an exception, and therefore does not complete. For more information, see the Messages discarded in normal operation section of Message reliability levels - JMS delivery mode and service integration quality of service.