+

Search Tips   |   Advanced Search

Example: Invoking showPoolContents using the Java Management Extensions API


This example Java program uses the Java Management Extensions (JMX) API to invoke showPoolContents.

/**
 * "This sample program is provided AS IS and may be used, executed, 
 *  copied and modified without royalty payment by customer (a) for 
 *  its own instruction and study, (b) in order to develop applications 
 *  designed to run with an IBM WebSphere product, either for customer's 
 *  own internal use or for redistribution by customer, as part of such an 
 *  application, in customer's own products. " 

 * Product 5724i63, (C) COPYRIGHT International Business Machines Corp., 2004      


 *
 * All Rights Reserved * Licensed Materials - Property of IBM
 * 
 * This program will display an active mbean object name and the connection pool.
 * 
 * To run this program
 * 
 *  1. call "%WAS_HOME%/bin/setupCmdLine.bat"
 * 
 *  2. "%JAVA_HOME%\bin\java" "%CLIENTSAS%" "-Dwas.install.root=%WAS_HOME%" 
 *     "-Dwas.repository.root=%CONFIG_ROOT%" 
 *      -Dcom.ibm.CORBA.BootstrapHost=%COMPUTERNAME% 
 *     -classpath "%WAS_CLASSPATH%;%WAS_HOME%\runtimes\com.ibm.ws.admin.client_7.0.0.jar;
 *     %WAS_HOME%\lib\wasjmx.jar;." ShowPoolContents DataSource_mbean_name
 */
 import java.util.Properties;
 import java.util.Set;
 import javax.management.*;
 import com.ibm.websphere.management.AdminClient;
 import com.ibm.websphere.management.AdminClientFactory;
 import com.ibm.websphere.management.exception.ConnectorException;
 public class ShowPoolContents {

  private AdminClient adminClient;

  public static void main(String[] args) {
    try {
      String name2 = null;
      String port = null;
      if (args.length < 2) {
        System.out.println("Enter name for the mbean and port");
        return;
      }
      else {
        name2 = args[0];
        port = args[1];
        System.out.println("Searching for name" + name2);
      }
      ShowPoolContents ace = new ShowPoolContents();

      
// Create an AdminClient
      ace.createAdminClient(port);

      ObjectName[] cfON = ace.queryMBean("DataSource", null);

      if (cfON.length == 0) {
        System.out.println(" *Error : queryMBean did not find any active mbeans of 
                           type DataSource.");
        System.out.println(" At first touch of a DataSource, an mbean will be created. 
                           To touch a DataSource, use getConnection");
        return;
      }
      int selectedObjectName = -1;
      String findName = name2;

      for (int i = 0; i < cfON.length; i++) {
        System.out.println("\ncfON[i] = " + cfON[i]);
      }

    }
    catch (Exception e) {
      System.out.println(" *Exception : " + e.toString());
      e.printStackTrace(System.out);
    }
  }

  private void createAdminClient(String port) {
    
// Set up a Properties object for the JMX connector attributes
    Properties connectProps = new Properties();
    connectProps.setProperty(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP);
    connectProps.setProperty(AdminClient.CONNECTOR_HOST, "localhost");
    connectProps.setProperty(AdminClient.CONNECTOR_PORT, port);

    
// Get an AdminClient based on the connector properties
    try {
      adminClient = AdminClientFactory.createAdminClient(connectProps);
    }
    catch (ConnectorException e) {
      System.out.println("Exception creating admin client: " + e);
      System.exit(-1);
    }

    System.out.println("Connected to DeploymentManager");
  }

  
// helper method to query mbean by type / name
  public ObjectName[] queryMBean(String type, String name) throws Exception {
    String s = "*:";
    if (type != null)
      s += "type=" + type;

    if (name != null)
      s += ",name=" + name;

    s += ",*";

    System.out.println("queryMBean: " + s);
    ObjectName ion = new ObjectName(s);

    Set set = adminClient.queryNames(ion, null);
    Object[] o = set.toArray();
    ObjectName[] on = new ObjectName[o.length];

    for (int i = 0; i < o.length; i++) {
      on[i] = (ObjectName)o[i];
    }

    return on;
  }
}




 

Related tasks


Change connection pool settings with wsadmin

 

Related


Example: Accessing MBean connection factory and data sources using wsadmin