Error Handling for Transaction Type of NO_TRANSACTION
When sending JMS messages using a multisend guaranteed policy with a connection of type of NO_TRANSACTION, the following error handling may occur:
If the minimum number of
Brokers required by the multisend guaranteed policy are not available,
Integration Server will try various combinations of
Brokers in the
Broker cluster to ensure that the JMS message is sent to the minimum number of
Brokers. For example, if the multisend guaranteed policy specifies that the JMS message must be sent to 2 of 4
Brokers in a
Broker cluster that consists of
BrokerA,
BrokerB,
BrokerC, and
BrokerD.
Integration Server might first try to send the JMS message to
BrokerA and
BrokerB. If
BrokerA is not available,
Integration Server retries with a different combination of
Brokers, such as
BrokerB and
BrokerC.
Integration Server will retry up to two times to send the message using different combinations of
Brokers. If the minimum number of
Brokers is not available after the final retry attempt,
Integration Server throws an ISRuntimeException.
If a fatal error occurs while
Integration Server is sending messages to multiple
Brokers,
Integration Server throws a ServiceException and the sending service fails. For example, an invalid destination lookup name or invalid connection factory name results in a ServiceException and thus a fatal error.
Note:
When overriding a multisend guaranteed policy and using a connection transaction type of NO_TRANSACTION, if one of the Brokers is not available while Integration Server is sending the message, Integration Server does not retry sending the message with a different combination of Brokers. Instead, Integration Server throws an ISRuntimeException.