The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

JMX::Jmx4Perl::Request - Encapsulates a request for Jmx4Perl

SYNOPSIS

  $req = JMX::Jmx4Perl::Request->new(READ_ATTRIBUTE,$mbean,$attribute);

DESCRIPTION

A JMX::Jmx4Perl::Request encapsulates a request for various operational types. Probably the most common type is READ_ATTRIBUTE which let you retrieve an attribute value from an MBeanServer. (In fact, at the time being, this is the only one supported fo now)

The following attributes are available:

mbean

Name of the targetted mbean in its canonical format.

type

Type of request, which should be one of the constants

READ_ATTRIBUTE

Get the value of a attribute

WRITE_ATTRIBUTE

Write an attribute (not supported yet)

EXEC_OPERATION

Execute an JMX operation (not supported yet)

REGISTER_NOTIFICATION

Register for a JMX notification (not supported yet)

REMOVE_NOTIFICATION

Remove a JMX notification (not supported yet)

attribute

If type is READ_ATTRIBUTE or WRITE_ATTRIBUTE this specifies the requested attribute

path

This optional parameter can be used to specify a nested value in an complex mbean attribute or nested return value from a JMX operation. For example, the MBean java.lang:type=Memory's attribute HeapMemoryUsage is a complex value, which looks in the JSON representation like

 "value":{"init":0,"max":518979584,"committed":41381888,"used":33442568}

So, to fetch the "used" value only, specify used as path within the request. You can access deeper nested values by building up a path with "/" as separator. This looks a bit like a simplified form of XPath.

METHODS

$req = new JMX::Jmx4Perl::Request(....);
 $req = new JMX::Jmx4Perl::Request(READ_ATTRIBUTE,$mbean,$attribute,$path);
 $req = new JMX::Jmx4Perl::Request(READ_ATTRIBUTE,{ mbean => $mbean,... } );
 $req = new JMX::Jmx4Perl::Request({type => READ_ATTRIBUTE, mbean => $mbean, ... } );

The constructor can be used in various way. In the simplest form, you provide the type as first argument and depending on the type one or more additional attributes which specify the request. The second form uses the type as first parameter and a hashref containing named parameter for the request parameters (for the names, see above). Finally you can specify the arguments completely as a hashref, using 'type' for the entry specifying the request type.

Note, depending on the type, some parameters are mandatory. The mandatory parameters and the order of the arguments for the constructor variant without named parameters are:

READ_ATTRIBUTE
 Order    : $mbean, $attribute, $path
 Mandatory: $mbean, $attribute
WRITE_ATTRIBUTE (not supported yet)
 Order    : $mbean, $attribute, $value, $path
 Mandatory: $mbean, $attribute, $value
LIST
 Order    : $path
$request->get("type")

Get a request parameter

LICENSE

This file is part of jmx4perl.

Jmx4perl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

jmx4perl is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with jmx4perl. If not, see <http://www.gnu.org/licenses/>.

A commercial license is available as well. Please contact roland@cpan.org for further details.

AUTHOR

roland@cpan.org