NexJ Logo

Monitoring object queues

Object queues are a concurrency control mechanism which supports sending and receiving internal messages between application components. Object queues provide a clean interface for managing flows of integration messages or of asynchronous business logic invocations.

Much of the object queue functionality is implemented in metadata. Developers can therefore directly examine, create, and manipulate messages and queues from business logic at runtime, which is not feasible with third-party queuing modules. In particular, object queues:

  • Contain error handling logic that can be overridden to support advanced error recovery scenarios.
  • Support several concurrency control mechanisms to:
    • Limit load on a server.
    • Guarantee the relative ordering of message deliveries.
    • Limit concurrent access to sensitive resources.
  • Provide hooks, which can be used to gather statistics on message processing and to track progress of parallelized work.

Each application has multiple object queues, which are defined using NexJ Studio before the application is deployed.

You can inspect the object queues and individual messages using the Object Queues page in NexJ System Admin Console. Use this functionality to proactively monitor object queue statistics and to review error and runtime queues. This enables you to resolve performance problems as they occur and to identify potential performance issues before they occur.

You can also resend blocked and waiting messages and change certain properties for a queue. You can update concurrency settings and specify whether a queue can send or receive messages.

Core object queue channels

The core NexJ business model defines out-of-the-box object queue channels required for the application to behave as designed.

Channels are a key component of NexJ Framework's integration engine. Channels send and receive messages between differing systems using transport adapters. These adapters isolate differences in each system's communication protocol so that, regardless of how a system sends a message, it always interacts with a shared, common interface.

ObjectSystemQueue

The system queue is the default queue for asynchronous method invocation. It comes preconfigured to use the generic server and is the default queue for (SysQueue'invoke …) and batch jobs.

ObjectErrorQueue

The error queue does not process messages that are sent to it. It collects messages that have failed to be processed in other queues. An administrator can periodically clear this queue, or can pick out specific messages to be reposted to other queues. The messages in this queue are always in the blocked state.

ObjectDispatcherQueue

The dispatcher queue is a specialized queue for sending messages which interact with the object queue dispatching engine, for example, asynchronous invocations which alter messages that are waiting on active queues. Any message sent to the dispatcher queue will block all dispatcher activities while the message is processing. This functionality is intended for advanced use only because while messages are being processed in this queue, other queues are not serviced.

Use the Object Queues page in NexJ System Admin Console to review the details of your application's object queues.

The Object Queues page is divided into three areas.

  • The Object Queues list on the left displays all object queues in your system. You can filter this list to display only specified queues.
  • The summary area on the top right displays summary information about the selected object queue.
  • The details area on the bottom right is divided into three tabs:
    • Detail
      Displays detailed information about the selected object queue. You can change the queue's concurrency settings and whether the object queue can send and receive messages.

    • Statistics
      Displays network performance statistics for each node in the object queue.

    • Messages
      Lists all messages currently waiting on the selected object queue and shows detailed information about a selected message. You can filter the message list to display only messages that fit specified criteria. You can also resend messages that are blocked or waiting.

Viewing details for object queues
Editing settings for an object queue
Viewing statistics for object queues
Viewing messages for object queues
Resending object queue messages
Troubleshooting an accumulation of messages on object queues