In This Section
Overview
A Talon XVM can be configured to allow administrative applications to monitor and manage it over messaging. This document describes this feature.
Admin Channels
The table below lists the bus channels used for administration over SMA:
Channel | Key | QOS | ID | Description |
---|---|---|---|---|
Command and Control | ||||
xvm-request | xvm-admin/${xvmName}/request | BestEffort | 30000 | Command and control requests. |
xvm-response | xvm-admin/${adminClientId}/response | BestEffort | 30001 | Command and control responses (to issuing admin client) |
Passive Monitoring | ||||
xvm-heartbeat | xvm-admin/${xvmName}/heartbeat | BestEffort | 30003 | XVM heartbeats. |
xvm-trace | xvm-admin/${xvmName}/trace | BestEffort | 30004 | Log trace records. |
xvm-event | xvm-admin/${xvmName}/event | BestEffort | 30005 | Lifecycle and alert events. |
By default, all admin channels start with xvm-admin channel prefix. This prefix can be changed by setting the environment property nv.admin.sma.channelKeyPrefix which can be useful for cases where it is desirable to more granularly partition admin traffic.
Request and Response Channels
When command and control is enabled, these channels allow admin clients to issue commands to an XVM. Such commands include XVM control commands such as triggering thread dumps or reloading applications and also include invocation of application-defined commands.
Requests and Response messages for command and control can be found in the com.neeve.server.mon.cnc package. At present, support for usage of command and control is reserved for the platform's admin APIs (Robin and Lumino).
Heartbeats
XVM heartbeats are periodically emitted over the heartbeats channel when they are enabled for the XVM.
Heartbeats are emitted using the SrvMonHeartbeatMessage type defined in the com.neeve.server.mon package. While this package contains additional lifecycle related messages types used by direct monitoring clients, only SrvMonHeartbeatMessage are emitted over the heartbeats channel.
Trace
When enabled SrvMonTraceRecords are emitted over the trace channel allowing admin clients to view trace output as it happens.
Tracer records are emitted using SrvMonTraceRecord message type that can be found in the com.neeve.server.mon.cnc package.
Events
The events channel is used to emit events such as lifecycle or alert events which are defined in the com.neeve.server.mon.lifecycle and com.neeve.server.mon.alert.
Configuration
Configuring XVMs
Admin Bus Configuration
To use Admin over SMA for an XVM, a bus named xvm-admin
must be configured to specify the bus connection details:
Admin channels (xvm-request, xvm-response, xvm-heartbeat, xvm-event, and xvm-trace) should not be configured for the bus, they are automatically created by the XVM when it is started.
XVM Messaging Configuration
To enable Admin over SMA for an XVM, SMA must be configured as a transport for it:
With the above configuration, the order-processing-1
xvm will create a connection to solace://solhost:55555 with a username of order-processing-1. It will use the following topics:
Subscribe:
- xvm-request channel: xvm-admin/order-processing-1/request
Publish:
- xvm-response channel: xvm-admin/${adminClientId}/response (where the adminClientId is substituted with that of the sending client when a response is sent).
- xvm-heartbeats channel: xvm-admin/order-processing-1/heartbeat (when heartbeats are enabled)
- xvm-trace channel: xvm-admin/order-processing-1/trace (when trace emission is enabled)
- xvm-event channel: xvm-admin/order-processing-1/event
Enabling xvm heartbeats isn't strictly necessary, but in most monitoring scenarios it is desirable.
Configuring Admin Client Connectivity
Tools such as Robin, Lumino or the AdminTool must similarly be configured to include sma as a transport and configure bus connection information. As admin clients won't always be configured via DDL, configuration is done via system/enviornment properties.
It is also possible to configure the admin client's bus more compactly using a bus descriptor instead of specifying provider, address, port and properties:
Discovery
Admin clients should not attempt to issue commands until an XVM has been discovered via the discovery provider (see Understanding Discovery). When an admin client detects that a XVM is no longer discoverable it should stop issuing commands over SMA.