Store Monitoring

You can use the Server Dashboard or the Server Monitor or REST Monitoring APIs to view metrics on the store (persistent memory and disk).

You can view statistical information about the Eclipse Amlen persistent store. The persistent store statistics provide information about the usage of persistent memory and disk. These statistics describe how much persistent memory is being used, and by which category of owner: transactions, client states, queues, subscriptions, topics with retained messages, MQ connectivity. You can use the Server Memory Usage graph on the Home page of the Amlen WebUI to understand persistent memory usage over a period of 24 hours so that you can take appropriate action to continue efficient operation. If your persistent memory is approaching full capacity, investigate how much memory is being used by the various owner categories.

There are 2 pools of memory in the persistent store:
  • Pool 1 contains records for topics that have retained messages, durable subscriptions, queues, clients, and connectivity with IBM® MQ queue managers.
  • Pool 2 contains records of acknowledgements with MQTT clients.

Use the Server Dashboard on the Home page, or the Server Monitor page to view the following statistics about Eclipse Amlen persistent memory:

  • MemoryUsedPercent
    Shows the percentage of persistent memory that is used, and, therefore, is not available.
  • DiskUsedPercent
    Shows the percentage of disk space that is used.
  • DiskFreeBytes
    Shows the amount of disk space, in bytes, that is available.
  • Pool1TotalBytes
    Shows the amount of memory, in bytes, in pool 1.
  • Pool1UsedBytes
    Shows the amount of memory, in bytes, that is currently in use in pool 1.
  • Pool1UsedPercent
    Shows the percentage of memory that is in use in pool 1.
  • Pool1RecordSizeBytes
    Shows the size, in bytes, of each record in pool 1.
  • Pool1RecordsLimitBytes
    Shows the overall amount of memory, in bytes, that can be used by client applications. If this limit is exceeded, publications and subscriptions might be rejected.
  • Pool1RecordsUsedBytes
    Shows the amount of memory, in bytes, that is being used for client records. If this value exceeds the value of Pool1RecordsLimitBytes, publications and subscriptions might be rejected.
  • ClientStatesBytes
    Shows the memory allocated for clients that must be remembered when they are disconnected. In MQTT, these are clients that connected using a cleanSession=0 setting or clients that connected and set a will message the quality of service of which is 1 or 2.
    To reduce the amount of store memory that is being used for this category, you can disconnect and delete MQTT clients by using either:
    • The Disconnected MQTT Clients monitoring page in the Amlen WebUI, or
    • The Eclipse Amlen REST API DELETE method. For more information about using the Eclipse Amlen REST API DELETE method, see Delete configuration objects.
    To prevent clients from connecting with a setting of cleanSession=0, you can either:
    • Edit the connection policy in the Amlen WebUI: clear the Allow Clients with Durable Subscriptions check box, or
    • Edit the connection policy to set the AllowDurable parameter to False by using the Eclipse Amlen REST API POST method. For more information about using the Eclipse Amlen REST API POST method, see Create or update a connection policy.
  • QueuesBytes
    Shows the memory, in bytes, allocated for queues. Memory is allocated in this category for each queue that is created for point-to-point messaging.
  • TopicsBytes
    Shows the memory, in bytes, allocated for topics. The server allocates memory in this category for each topic with a persistent retained message.

    A large amount of store memory being consumed by this category indicates that the server is retaining messages for a large number of topics. To reduce the amount of store memory that is being used by this category, publish retained messages on a smaller number of topics. You can remove individual retained messages by publishing zero-length messages on the same topic. Retained messages can also be removed by the message expiration facility if message expiration is being used; check the value of MaxMessageTimeToLive parameter of your topic policy.

  • SubscriptionsBytes
    Shows the memory, in bytes, allocated for durable subscription records. In MQTT, these are subscriptions for clients that connected using a cleanSession=0 setting.
    To reduce the amount of store memory that is being used by this category, you can disconnect clients and delete subscriptions by using either:
    • The Subscriptions monitoring page in the Amlen WebUI, or
    • The Eclipse Amlen REST API DELETE method. For more information about using the Eclipse Amlen REST API DELETE method, see Delete configuration objects.
    To prevent clients from connecting with a setting of cleanSession=0, you can either:
    • Edit the connection policy in the Amlen WebUI: clear the Allow Clients with Durable Subscriptions check box, or
    • Edit the connection policy to set the AllowDurable parameter to False by using the Eclipse Amlen REST API POST method. For more information about using the Eclipse Amlen REST API POST method, see Create or update a connection policy.
  • TransactionsBytes
    Shows the memory, in bytes, allocated for transaction records. The server allocates memory in this category for each transaction.

    During normal operation, most of the store memory being used by this category is for transactions that are being used internally by Eclipse Amlen for a variety of purposes which ensure the consistency of its operations. To reduce the amount of store memory that is being by this category, reduce the workload of the server so that fewer internal transactions are used. Transactions continue to be created after the Pool1RecordsLimitBytes has been exceeded.

  • MQConnectivityBytes
    Shows the memory, in bytes, allocated for connectivity with IBM MQ queue managers.
    To reduce the amount of store memory that is being used by this category, review your destination mapping rules and remove any unnecessary rules. You can modify and review destination mapping rules by using either:
    • The MQ Connectivity page that you can select from theMessaging menu in the Amlen WebUI, or
    • The Eclipse Amlen REST API POST method or the Eclipse Amlen REST API GET method. For more information about editing and viewing destination mapping rules, see Configuring destination mapping rules.
  • Pool2TotalBytes
    Shows the amount of memory, in bytes, in pool 2.
  • Pool2UsedBytes
    Shows the amount of memory, in bytes, that is currently in use in pool 2.
  • Pool2UsedPercent
    Shows the percentage of memory that is in use in pool 2.
  • IncomingMessageAcksBytes
    Shows the memory, in bytes, allocated for acknowledging incoming messages. The server allocates memory in this category for MQTT clients that connected using a cleanSession=0 setting and are publishing messages the quality of service of which is 2. This memory is used to ensure once-and-once-only delivery.