IBM Support

Specifying which enterprise services your JMSQSEQCONSUMER and IFACETABLECONSUMER cron tasks will process

Technical Blog Post


Abstract

Specifying which enterprise services your JMSQSEQCONSUMER and IFACETABLECONSUMER cron tasks will process

Body

You want to set up crontask parameters for the JMSQSEQCONSUMER or IFACETABLECONSUMER crontask instance so that only messages for certain enterprise services are processed by a particular crontask instance. 

For example, you may want to process only workorder transactions associated with the MXWOInterface enterprise service.  if you set the enterprise service name in your crontask parameters to a value that matches a valid enterprise service name but do not enter the name of an external system which hosts the enterprise service, you will notice that your crontask instance does not honor that parameter by itself and all messages in the queue or interface table will be processed regardless of the enterprise service name parameter value specified.

To correct this problem, you must also set the external system name parameter.  The enterprise service name value is only evaluated in the context of the supplied external system name, so if the external system name parameter value is missing, the value in the enterprise service name parameter is ignored and results in all messages being processed.

On the IFACETABLECONSUMER crontask instance, you set ENTERPRISESERVICENAME and EXTSYSNAME parameter values to represent the external system name and enterprise service name for messages you want this crontask instance to process. 

For example, if you want to process messages for the external system called EXTSYS1, and the enterprise service name MXWOInterface, you set the following ifacetableconsumer crontask parameters values:

EXTSYSNAME=EXTSYS1

ENTERPRISESERVICE=MXWOInterface

Remember that there must not be any other crontask instance configured to pick up messages associated with those being processed by this crontask instance.  If you are using this method to specify which external systems and enterprise services to process, all other crontask instances must to be configured to pick up messages for other external systems and other enterprise services to prevent overlap.

On the JMSQSEQCONSUMER, the "selector" crontask parameter is used to specify the external system and enterprise service names.

For example, to set the external system name, you must specify the SENDER key and INTERFACE keys, specifying their values in name/value pairs.  The following example is the entire entry that can be placed into the selector field on a JMSQSEQCONSUMER crontask instance:

SENDER=’EXTSYS1’ and INTERFACE=‘MXWOInterface’

If you wanted to specify multiple external systems and enterprise service names, you could use the example below:

SENDER in (’EXTSYS1’,'EXTEYS2') and INTERFACE in (‘MXWOInterface’, ‘MXPRInterface’)

Finally, you can also specify which external systems and enterprise services your continuous queue message beans will process.  This is done by editing the ejb-jar.xml using a text editor, then rebuilding the maximo.ear and redeploying the Maximo application.

For example, if you wanted to process messages for the external system EXTSYS1, and the enterprise service name MXWOInterface, you edit the ejb-jar.xml and add the SENDER and INTERFACE parameters to the message selector section of the message bean as shown below:

<message-selector> SENDER=’EXTSYS1’ AND INTERFACE IN (‘MXPOInterface’, ‘MXPRInterface’)</message-selector>

Remember to rebuild and redeploy the Maximo application after making these changes.

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

UID

ibm11129659