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