The Talon Manual

Skip to end of metadata
Go to start of metadata

SINCE 3.10

In This Section

Overview

In addition to the standard direct (TCP based) monitoring capabilities, a Talon XVM can be configured to allow administrative applications to monitor and manage it over messaging. When Admin over SMA is enabled, XVMs emit heartbeat, trace and lifecycle events over defined messaging channels for consumption by listening clients. Tools such as Robin and Lumino use discovery to listen for available XVMs. Once an Admin Client discovers an XVM it connects to the configured message bus and subscribes to its monitoring channels. At a high level, all that is required to enable Admin over SMA is to set the following properties

As long as both the admin client and the XVM are using the same discovery descriptor and message bus, they will be able to communicate with one another. 

Warning

When enabling Admin over SMA it is important to note that by default admin clients using SMA will attempt to connect to discovered XVMs. If older version XVMs or XVMs not configured for Admin over SMA are advertising themselves over the admin client's discovery address the XVM will never respond and the admin client will see connection timeouts. To avoid this you may:

 

Admin Channels

The table below lists the bus channels used for administration over SMA: 

NameKeyQOSIDDescription
Command and Control
xvm-requestxvm-admin/${xvmName}/requestBestEffort30000Command and control requests.
xvm-responsexvm-admin/${adminClientId}/responseBestEffort30001Command and control responses (to issuing admin client)
Monitoring
xvm-heartbeatxvm-admin/${xvmName}/heartbeatBestEffort30002XVM heartbeats.
xvm-tracexvm-admin/${xvmName}/traceBestEffort30003Log trace records.
xvm-eventxvm-admin/${xvmName}/eventBestEffort30004Lifecycle 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. Note that each channel is configured with a topic level of either xvmName or adminClientId ... The xvmName topic level allows clients to listen in to a particular xvm, and the adminClientId, allows an XVM to send responses targeted to a particular adminClient. 

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

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 an XVM is no longer discoverable it should stop issuing commands over SMA. 

Configuring Admin Client Connectivity

Tools such as Robin, Lumino or the AdminTool must be configured to enable SMA as a transport along with the admin bus connection information. As admin clients won't always be configured via DDL, configuration is done via system/environment properties to configure connectivity to the XVMs monitoring server. 

Properties Based Configuration with Bus Descriptor

Alternatively, it is possible to configure the bus descriptor in decomposed form, which can be useful in cases where configuration properties are more overridden across environments. 

Properties Based Configuration for Clients

Configuring XVMs

XVMs can be configured using the same environment properties as clients by setting the properties in the DDL environment section:

If you are using Robin or Lumino to provision your XVMs, setting up the admin transports in your config.xml is typically not necessary – robin will add the configuration in automatically based on the client settings configured in its robin.conf.

(warning) It is important, however, to ensure that your application packages the appropriate messaging provider jars.

Advanced XVM Bus Configuration

Using environment based configuration is the simplest way of configuring Admin over SMA for an XVM. In cases where bus configuration is not being injected by Robin or Lumino during deployment, it is possible to use the <xvm> <admin> element in DDL to enable admin over SMA and reference a DDL defined bus definition. 

XVM Admin over SMA Configuration

To configure an XVM to use a bus named 'xvm-admin' the XVM's <admin> <sma> element can be used:

Admin Bus Configuration

The following bus definition can then be configured for use by the XVM. 

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.

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.

Passive Monitoring

It is possible to use Admin over SMA in a purely passive monitoring capacity by setting the property:

With the above configuration setting clients will throw an exception if an attempt is made to send commands to an XVM, and XVMs will not issue subscriptions on the xvm-request channel.

 

  • No labels