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:

ChannelKeyQOSIDDescription
Command and Control
xvm-requestxvm-admin/${xvmName}/requestBestEffort30000Command and control requests.
xvm-responsexvm-admin/${adminClientId}/responseBestEffort30001Command and control responses (to issuing admin client)
Passive Monitoring
xvm-heartbeatxvm-admin/${xvmName}/heartbeatBestEffort30003XVM heartbeats.
xvm-tracexvm-admin/${xvmName}/traceBestEffort30004Log trace records.
xvm-eventxvm-admin/${xvmName}/eventBestEffort30005Lifecycle and alert events.

By default, all admin channels start with xvm-admin channel prefixThis 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:

<buses>
  <bus name="xvm-admin">
	<provider>solace</provider>
    <address>solhost</address>
    <port>55555</port>
  </bus>
</buses>

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:

<xvms>
  <xvm name="order-processing-1" template="xvm-template">
    <admin>
      <transports>
     	 <sma enabled="true"/>
      </transports>
    </admin>
    <heartbeats enabled="true" interval="5s"/>
  </xvm>
</xvms>

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:

Publish:

Enabling xvm heartbeats isn't strictly necessary, but in most monitoring scenarios it is desirable to allow the monitoring client to

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. 

nv.admin.transports=sma
nv.admin.sma.bus.name=xvm-admin
nv.admin.sma.bus.provider=solace
nv.admin.sma.bus.address=solhost
nv.admin.sma.bus.port=55555
nv.admin.sma.bus.properties.topic_starts_with_channel=false

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:

nv.admin.passiveMonitoringOnly=true
nv.admin.transports=sma
nv.admin.sma.bus.name=xvm-admin
nv.admin.sma.bus.descriptor=solace://solhost:55555&topic_starts_with_channel=false

 

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. 

Passive vs. Active Monitoring