+

Search Tips   |   Advanced Search

Establishing a JMX MBean Liberty server connection

We can use Jython-based scripts to establish a Java Management Extensions (JMX) MBean Liberty server connection.

We must obtain and install the Jython version of the choice before we can perform this procedure. Without a Jython runtime, the instructions will fail.

  1. Set up the environment.

    The files needed are located in liberty_home/clients/jython.

    1. Copy the lib/restConnector.py file to jython_home/Lib.

    2. Set the classpath for restConnector.jar in liberty_home/clients.

        set CLASSPATH=%CLASSPATH%;c:\wlp\clients\restConnector.jar

  2. Run the utility.

    Example 1: Getting a simple connection using connector.connect(host,port,user,password)

    from restConnector import JMXRESTConnector
    JMXRESTConnector.trustStore = "c:/key.jks"
    JMXRESTConnector.trustStorePassword = "Liberty"
    
    connector = JMXRESTConnector()
    connector.connect("foo.bar.com",9443,"theUser","thePassword")
    mconnection = connector.getMBeanServerConnection()
    # mconnection.invoke(...)
    connector.disconnect()

    Example 2: Getting an advanced connection using connector.connect(host,port,map) with user-provided properties

    import java
    import javax
    import jarray
    import com.ibm.websphere.jmx.connector.rest
    import com.ibm.ws.jmx.connector.client.rest
     
    map=java.util.HashMap()
    map.put("jmx.remote.provider.pkgs","com.ibm.ws.jmx.connector.client")
    map.put(javax.management.remote.JMXConnector.CREDENTIALS,jarray.array(["theUser","thePassword"],java.lang.String))
    map.put(com.ibm.ws.jmx.connector.client.rest.ClientProvider.READ_TIMEOUT,2*60*1000)
    map.put(com.ibm.websphere.jmx.connector.rest.ConnectorSettings.DISABLE_HOSTNAME_VERIFICATION, True) 
    
    connector = JMXRESTConnector()
    connector.connect("foo.bar.com",9443,map)
    mconnection = connector.getMBeanServerConnection()
    # mconnection.invoke(...)
    connector.disconnect()

    Example 3: Registering a notification listener

    import java
    import javax
    
    from restConnector import JMXRESTConnector
    from restConnector import BaseNotificationListener
    
    class SampleNotificationListener(BaseNotificationListener):
      def __init__(self):
        pass
    
      def handleNotification(self,notification,handback):
        print "Notification received:"
        print "  Source: " + notification.getSource().toString()
        print "  Type: " + notification.getType()
        print "  Message: " + notification.getMessage()
    
    # main starts here
    
    JMXRESTConnector.trustStore = "c:/key.jks"
    JMXRESTConnector.trustStorePassword = "Liberty"
    
    connector=JMXRESTConnector()
    connector.connect("foo.bar.com",9443,"theUser","thePassword")
    mconnection=connector.getMBeanServerConnection()
    
    listener=SampleNotificationListener()
    handback=java.lang.Object()
    
    notifier1=javax.management.ObjectName("web:name=Notifier1")
    mconnection.addNotificationListener(notifier1,listener,None,handback)

    JMXRESTConnector.trustStore

    Sets the path to where the SSL key file is stored

    JMXRESTConnector.trustStorePassword

    Sets the password for the key

    JMXRESTConnector.connect(host,port,user,password)

    Creates a connector to the server

    JMXRESTConnector.connect(host,port,map)

    Creates a connector with user properties

    JMXRESTConnector.getMBeanServerConnection

    Gets a connection to the MBean server

    JMXRESTConnector.disconnect()

    Closes the connection


What to do next

After a connection to the MBean server is established, we can make calls to the MBean server using the invoke(...) method.

A library of Jython scripts is available for you to download from the Liberty Repository.


Parent topic: Administer the Liberty profile manually