Configuring the Grid for Processing

Once you have implemented your inbound interfaces, you will need to configure the nodes in your Platform cluster to process the messages. As with all message processing, this is done by configuring various grid TaskPerformers of type Dequeue in dvce-app-config. This gives you the flexibility for configuration such as:

  • I want a pool of 5 threads to process messages across all 10 of my queues

    <TaskPerformerConfig>
    <Type>Dequeue</Type>
    <NumberOfThreads>5</NumberOfThreads>
    <TaskPerformerClassName>com.transcendsys.platform.integ.message.DequeueTaskPerformer</TaskPerformerClassName>
    <Queue name="inbox/MyQueue1" vcID="9123"/>
    <Queue name="inbox/MyQueue2" vcID="9123"/>
    ...
    <Queue name="inbox/MyQueue10" vcID="9123"/>
    </TaskPerformerConfig>

  • I want a thread dedicated to just 1 queue, and then a pool of 5 threads for my other 9 queues.

    <TaskPerformerConfig>
    <Type>Dequeue</Type>
    <NumberOfThreads>1</NumberOfThreads>
    <TaskPerformerClassName>com.transcendsys.platform.integ.message.DequeueTaskPerformer</TaskPerformerClassName>
    <Queue name="inbox/MyQueue1" vcID="9123"/>
    </TaskPerformerConfig>
     
    <TaskPerformerConfig>
    <Type>Dequeue</Type>
    <NumberOfThreads>5</NumberOfThreads>
    <TaskPerformerClassName>com.transcendsys.platform.integ.message.DequeueTaskPerformer</TaskPerformerClassName>
    <Queue name="inbox/MyQueue2" vcID="9123"/>
    <Queue name="inbox/MyQueue3" vcID="9123"/>
    ...
    <Queue name="inbox/MyQueue10" vcID="9123"/>
    </TaskPerformerConfig>
  • I want a separate thread dedicated to each queue

    <TaskPerformerConfig>
    <Type>Dequeue</Type>
    <NumberOfThreads>1</NumberOfThreads>
    <TaskPerformerClassName>com.transcendsys.platform.integ.message.DequeueTaskPerformer</TaskPerformerClassName>
    <Queue name="inbox/MyQueue1" vcID="9123"/>
    </TaskPerformerConfig>
    ...
    <TaskPerformerConfig>
    <Type>Dequeue</Type>
    <NumberOfThreads>1</NumberOfThreads>
    <TaskPerformerClassName>com.transcendsys.platform.integ.message.DequeueTaskPerformer</TaskPerformerClassName>
    <Queue name="inbox/MyQueue10" vcID="9123"/>
    </TaskPerformerConfig>
  • I want multiple threads processing a single non-exclusive-consumer queue

    <TaskPerformerConfig>
    <Type>Dequeue</Type>
    <NumberOfThreads>5</NumberOfThreads>
    <TaskPerformerClassName>com.transcendsys.platform.integ.message.DequeueTaskPerformer</TaskPerformerClassName>
    <Queue name="inbox/MyQueue1" vcID="9123"/>
    </TaskPerformerConfig>
  • I want to dequeue from an enterprise-specific queue

    <TaskPerformerConfig>
    <Type>Dequeue</Type>
    <NumberOfThreads>1</NumberOfThreads>
    <TaskPerformerClassName>com.transcendsys.platform.integ.message.DequeueTaskPerformer</TaskPerformerClassName>
    <Queue name="inbox/MyQueue1" vcID="9123" enterpriseName="MyEnt"/>
    </TaskPerformerConfig>
  • I want multiple threads processing all queues, indiscriminately. If new queues are added, it will process from those queues without configuration changes. (To achieve this, we omit QueueName.)

    <TaskPerformerConfig>
    <Type>Dequeue</Type>
    <NumberOfThreads>5</NumberOfThreads>
    <TaskPerformerClassName>com.transcendsys.platform.integ.message.DequeueTaskPerformer</TaskPerformerClassName>
    </TaskPerformerConfig>

Furthermore, you can configure specific nodes to only consider certain queues by configuring TaskPerformers only on those nodes.