IBM Support

Setting up an exception destination for the Continuous queue

Troubleshooting


Problem

In a WebSphere environment, there is no reliable way to set a redelivery delay on the continuous queue. Instructions below apply to Maximo Enterprise Adapter 6.x.

Symptom

Message delivery performance is impacted

Resolving The Problem

If no exception destination exists on the continuous queue, performance degradation occurs when an error transaction exists in the continuous queue. The following information provides steps to configure an exception destination queue for the continuous queue introducing a redelivery delay for failed messages to prevent performance degradation, as well as eliminate blocking of message delivery due to the limit on the number of messages being in error at one time while using the default configuration.

Performing these steps will eliminate the limit on the number of error xmls that can exist in the MEA Global Directory as well.

Below you will find the instructions needed to use an exception destination that Maximo will handle. All error messages from the continuous queue will be moved to this new exception destination queue after 5 delivery attempts, allowing normal processing of previously undelivered messages from the continuous queue.

Messages in the new exception destination queue will be delivered 5 times and then placed at the back of the exception destination queue if delivery to Maximo still fails, allowing delivery attempts of all messages.

This loop will continue until messages are delivered successfully to Maximo or deleted via the delete folder in the MEA Global Directory.

Configuration steps:
1. Log in to Maximo, navigate to Integration/External Systems and select any external system
2. From the action menu, select "add/modify queues".
3. Create a new queue:
JNDI name: jms/mro/int/queues/cqinexceptiondest
queue connection factory: jms/mro/int/qcf/intqcf (make sure this matches the one you are using on your other queues)
Set sequential flag to true
Set inbound flag to true
set maximum try count to 0
Click OK.
4. Modify the maximum try count for the continuous queue (cqin) to ensure it has a value of 0.
5. Navigate to the Configuration/Cron task setup application.
6. Bring up the JMSQSEQCONSUMER crontask.
7. Select the SEQQIN crontask instance, and then click "duplicate" button
8. In the "Cron task instance name" field, enter "CQINEXCEPTIONDEST"
9. Change the "queue name" field to match the new queue created above: jms/mro/int/queues/cqinexceptiondest
10. The message processor field should already have this value: psdi.iface.jms.QueueToMaximoProcessor
11. Click the "save" icon on the task bar.

Next, launch the WebSphere console
1. Navigate to Resources/JMS Providers
2. Ensure that your scope is set to the Cell level. You will see the RED arrow pointing to the active scope, and this must point to the Cell field
3. Navigate in the left pain to "service integration/buses"
4. Select your active bus
5. Under "destination resources" on the right side, select "destinations"
6. Click the "new" button to create a new destination
7. Make sure "queue" radio button is selected and click Next
8. In the identifier field, enter cqinbdexceptiondest and enter a description of your choice, then click Next
9. Assign the queue to your MEA application server instance and click Next
10. Click Finish then Save and Synchronize your changes
11. Navigate to your newly created destination cqinbdexceptiondest
12. Select the radio button beside the Exception Destination field, and the radio button beside "specify", then enter the name of your this new destination to create the loop so all errors are processed eventually: cqinbdexceptiondest
13. Set maximum failed deliveries to 5
14. Save and Synchronize your changes

Now we will create the exception destination queue:
1. In the WebSphere console, navigate to Resources/JMS providers/default messaging (ensure you are at the cell scope)
2. Under Destinations on the right, select "jms queue"
3. Click the "new" button
4. Enter the name as "cqinexceptiondest"
5. In the JNDI name field, enter "jms/mro/int/queues/cqinexceptiondest
6. Select the already existing bus name in use as the bus for this queue from the dropdown
7. In the queue name field, enter the destination name for this as "cqinbdexceptiondest"
8. Click "OK"

The last step will be to change properties on the preexisting cqinbd destination:
1. In the WebSphere console, navigate to your bus, and select "destinations" on the right.
2. Identify the name of your cqinbd destination, and select it.
3. Select the radio button beside the Exception Destination field, and the radio button beside "specify", then enter the name of your new destination: cqinbdexceptiondest
4. Set maximum failed deliveries to 5
5. Click Apply, then save and synchronize your changes

You will need to remove custom properties from the message engine related to sib.processor.blockedRetryTimeout if this setting is present, this setting blocks delivery of good messages as well as failed messages for the same interval specified and does not provide desired behavior.

Ensure all WebSphere services have been restarted.

[{"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"Business Unit":{"code":"BU055","label":"Cognitive Applications"},"Component":"MEA: Generic","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"6.0;6.1;6.2;6.2.1;6.2.2;6.2.3;6.2.4;6.2.5;6.2.6;6.2.7;6.2.8","Edition":"","Line of Business":{"code":"LOB02","label":"AI Applications"}},{"Product":{"code":"SSLKYL","label":"Maximo Enterprise Adapter"},"Business Unit":{"code":"BU055","label":"Cognitive Applications"},"Component":"Not Applicable","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"LOB02","label":"AI Applications"}}]

Product Synonym

MAXIMO

Document Information

Modified date:
25 November 2019

UID

swg21290139