Design
All the OA&M features on VXML Server are built with JMX management standards. Applications and components on VXML Server are instrumented using Managed Beans (MBeans). MBeans expose their management interfaces, composed of attributes, operations and event notifications, through a JMX agent for remote management and monitoring.
Managed resources are categorized at levels of application, global configuration and command, and platform. Each level may facilitate three typical JMX managements: lookup and modify configuration, collect and avail application statistics, notify of state changes and erroneous conditions.
At the application level, administrators can operate the following:
-
Get/set default audio path
-
Get/set suspended audio
-
Get/set session timeout
-
Get gateway adapter
-
Application release
-
Application resume
-
Runtime status
-
Application update
-
Suspend/resume application
-
Retrieve application administration history
-
Get application data
-
Set and remove application data
-
Remove all application data
-
Get application data names
The global level manages VXML Server as a web application. It allows:
-
Read logger event queue size
-
Read/write maximum logger thread pool size
-
Read/write minimum logger thread pool size
-
Read/write logger thread keep alive time
-
Read/write session invalidation delay
-
Get global status
-
Deploy all new applications. This command assumes all the deployable applications have been updated to the AudiumHome. All this command does is to deploy these applications.
-
List all new applications. This command lists the names of all new applications (that is, those which have yet to be deployed).
-
Deploy new application. This command deploys the specified application. To retrieve a list of new application names, use List all new applications (above) first.
-
Flush all old applications
-
Update all applications
-
Update common classes
-
Suspend/resume VXML Server
-
Retrieve global administration history
-
Get/set global data
-
Get all global data names
-
Remove all global data
At the same level, the management system also provides information regarding metrics collection:
-
The total number of calls since VXML Server starts up.
-
Maximum and average number of concurrent calls, the timestamp when it reaches the maximum calls.
-
Maximum and average response time.
-
Number of calls that time out.
-
Number of calls that encounter errors.
-
Transfer/zero-out rate. The number of calls transferring to an operator or live agent.
-
Abandon rate. The number of calls that end as hang up.
-
Call completion rate. The number of calls that are completed as expected through the callflow.
-
Maximum logger event queue size.
-
Maximum loggers thread count.
The platform level consists of information for VXML Server as a product:
-
Product Name
-
Product Version
-
Installation Key
-
Licensed Ports
-
License Expiration Date
-
Licensed GW Adapters
VXML Server MBeans implement
a Java API set that is defined for management interfaces. Developers can create
custom management beans that use the API. The following figure depicts the
relationship among the management API packages:
com.audium.server.management
and the built-in beans
(which use the package
com.audium.server.management.mbean
) and custom
beans.
When VXML Server
starts, all the beans that are deployed to
management
directory would be loaded and registered
to the JMX server. Depending on the base class it extends, a bean is grouped in
VoiceApplication, Global or Info under the domain Cisco VXML Server
Application Management API. For an application-scoped bean that
extends AbstractApplicationCommand
,
AbstractApplicationConfig
or
AbstractApplicationData
, a bean instance will be
created for each application. For instance, if bean A extends
AbstractApplicationCommand
and there are currently
two applications deployed: appA and appB, then two instances of bean A class
will be created, one for appA, the other for appB.
For a logger
that has been deployed with an application, a management bean will be
dynamically generated and registered for it. Currently there is no extra
requirement for a logger to become manageable. However, the following
operations are excluded from logger beans due to their irrelevance with respect
to manageability: log()
,
init()
, equals()
,
destroy()
, initialize()
,
hasCode()
, getClass()
,
wait()
, notify()
,
notifyAll()
, and
toString()
.
Custom beans that directly
implement AudiumManagementBeanInterface
but do not
extend any of the following abstract classes will be loaded but not registered
when VXML Server starts up:
AbstractApplicationCommand
,
AbstractApplicationConfig
,
AbstractApplicationData
,
AbstractGlobalCommand
,
AbstractGlobalConfig
,
AbstractGlobalData
, and
AbstractCallServicesInfo
.
This type of bean should register itself to the management server and will not have access to the information provided by VXML Server. VXML Server only loads these beans.
Note |
The standard VXML Server logging mechanism does not pick up errors or exceptions that happen in a custom bean and the developer is responsible for handling the errors themselves or let them propagate to the JMX console. |