MQSeries interface functionality

The MQSeries interface is implemented as a Windows Service that reads requests from an MQSeries queue and forwards them to KCM Core over its TCP/IP interface. Once installed for a particular KCM Core instance, it automatically detects the TCP/IP interface. You only need to configure MQSeries specific settings.

The MQSeries interface shuts down automatically if it is unable to access the request queue because of a permanent error. If the MQSeries interface is unable to access the request queue because of a temporary error, the MQSeries interface attempt to reestablish its connection to the request queue. In this case, you may receive a "queue is unavailable" error. The interval between reconnection attempts starts at 5 seconds and increases up to 60 seconds when the request queue is unavailable for a longer amount of time.

You can install multiple MQSeries interface Services. Each Service can read from different MQSeries queues on different queue managers.

Concurrent requests

The MQSeries interface can have as many requests active at any point in time as the number of licensed KCM Document Processors. Provided that all KCM Document Processors are running, this ensures that as many requests as possible are handled concurrently. If fewer processors are running, some of the active MQSeries jobs are queued at KCM Core for processing. The latter has consequences for the MQSeries priority mechanism, so you should always start all available KCM Document Processors.

If the license is issued for an unlimited number of KCM Document Processors, the number of simultaneous requests is limited to one job per CPU core on the KCM Core. You can explicitly set the number of simultaneous requests to n by adding the setting ScalingMaxDP=n to the [Configuration] section of the DP.INI file.

Priorities

The KCM Core MQSeries interface supports priority queues. In order for KCM Core to get priority messages as soon as possible, you should have as many Document Processors running as the KCM license allows, or at least as many as the number of CPU cores on the system if you have a license for an unlimited number of Document Processors.

High priority messages cannot interrupt running KCM Core jobs, so there may be some delay in the MQSeries queue.

Each KCM Core MQSeries interface only monitors a single queue. If multiple KCM Core MQSeries interfaces are configured to monitor priority queues, the priorities are only observed between jobs from the same queue. Jobs from different priority queues are not ordered relative to each other.

Syncpoint control

KCM Core requests are handled under MQSeries syncpoint control. As a result, requests are handled as an atomic transaction for as far as MQSeries communication is concerned. Furthermore, if the interface cannot deliver a request to KCM Core, it is backed out so that it can be processed later.

In all but one case, if a job does get delivered to KCM Core and it fails, it will not be backed out and a failure will be reported. A job only gets backed out after being delivered to KCM Core when the MQSeries interface ends abnormally.

If KCM Core itself ends abnormally during execution of a job, the MQSeries interface reports an error.

If the MQSeries interface is stopped in a regular way, it does not accept new jobs and waits for all running submitted jobs queued by KCM Core to complete. If all KCM Document Processors are down, it waits indefinitely until either a least one KCM Document Processor gets started and handles the jobs or the KCM Core is shut down. In the latter case, all jobs are backed out.