This example Java program uses the Java Management Extensions (JMX) application programming interface (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%\lib\admin.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; } }