Preventive Service Planning
If you reach the limit on the number of errors that Maximo can process in the continuous queue, no new messages are processed until the errors are cleaned out.
In a WebLogic environment, resources are configured to prevent problems with memory usage and slow performance. This leads to the possibility that if enough messages are in the error folder for the continuous queue, no more messages will be processed until these errors are deleted or retried successfully. Good messages will stay behind in the queue and will not be processed until that time. This limit by default is typically 150 messages in error.
A work around can be configured to move errors to a error queue, so that good messages will never be blocked and no limit will exist on the number of errors that can exist.
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 error destination queue, allowing normal processing of previously undelivered messages from the continuous queue, and if those messages fail again on the error destination, they will be moved back to the continuous queue, behind all other messages currently in that queue. This process allows all messages in error to be reprocessed regardless of the number of errors that exist.
The Maximo error handling for this new queue will place any error messages redelivered from the exception destination back to the original continuous queue's error folder under the Integration Global Directory, no new folder structure will be created. This is because Maximo determines where error xml files are written, retried, or deleted from based on the message header property which contains the JNDI name of the original destination (jms/mro/int/queues/cqin).
Steps for configuring an exception destination queue:
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
4. Modify the maximum try count for the continuous queue (cqin) with 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 WebLogic console
1. Navigate to Services/JMS/Servers/mxintcqinserver/destinations
2. Click the link to create a new JMS queue
3. In the name field, enter cqinexceptiondest and enter a description of your choice to match the purpose of this queue as an exception destination
4. In the JNDI name field, enter the name of this queue: jms/mro/int/queues/cqinexceptiondest
5. Click the "create" button
6. Select the "Redelivery" tab
7. Modify the Redelivery Limit and set the value to 2
8. From the "Error Destination" dropdown, select your original cqin destination called mxintcqin, this will create a loop between the error destination and the original queue which eliminates blocking and limits to the number of error xml files written and reprocessed
9. Click "Apply"
Now you will modify the redelivery settings for the original cqin queue
1. Navigate to Services/JMS/servers/mxintcqinserver/destinations/mxintcqin
2. Select the "Redelivery" tab
3. Modify the Redelivery Limit and set the value to 2
4. From the "Error Destination" dropdown, select your newly created destination called cqinexceptiondest
5. Click "Apply"
The last step is to restart the WebLogic server
13 April 2021