You can check the status of an entire business-level application. You can also limit the status to a particular composition unit of a business-level application, a specific deployment target, or check the status of the composition unit and the deployment target at the same time.
This task assumes a basic familiarity with command framework programming. Read about command framework programming in the application programming interface documentation.
Before you can check the status of a business-level application or a composition unit, you must have created the business-level application.
You can check the status of a business-level application using programming, the administrative console, or the wsadmin tool.
You must provide the blaID parameter to specify the business-level application that you are viewing.
Perform the following tasks to view a business-level application using programming.
After you successfully run the code, you can check the status of an entire business-level application, if you chose not to limit the status. If you chose options to limit the status, you could check the status to a particular composition unit of a business-level application, a specific deployment target, or check the status of the composition unit and the deployment target at the same time.
The smallest unit of status data that the system maintains is for a single composition unit in a single server or cluster member process. Business-level application status can be based on one or more composition units, each having one or more targets, with targets potentially consisting of clusters with multiple member processes. Therefore, the single status value returned from the getBLAStatus command is a compilation of individual status data for all composition units on all target process within the scope of the status query. The following table describes how individual status data is compiled into a single status value. The term composition unit instance used in the table refers to a composition unit on a single server or single cluster member process.
Status | Description |
---|---|
ExecutionState.STARTED | All composition unit instances within the scope of the query have been started. |
ExecutionState.STOPPED | All composition unit instances within the scope of the query have not been started or have been stopped. |
ExecutionState.PARTIAL_START | Some composition unit instances within the scope of the query have a status of ExecutionState.STARTED and some have a status of ExecutionState.STOPPED. |
ExecutionState.UNKNOWN | Status data for at least one composition instance within the scope of the query cannot be obtained for some reason. |
The following example shows how to check the status of a business-level application based on the previous steps. Some statements are split on multiple lines for printing purposes.
package com.ibm.ws.management.application.task; import java.util.Properties; import com.ibm.websphere.management.AdminClient; import com.ibm.websphere.management.AdminClientFactory; import com.ibm.websphere.management.Session; import com.ibm.websphere.management.cmdframework.AdminCommand; import com.ibm.websphere.management.cmdframework.CommandMgr; import com.ibm.websphere.management.cmdframework.CommandResult; import com.ibm.websphere.management.cmdframework.CommandStep; import com.ibm.websphere.management.cmdframework.TaskCommand; import com.ibm.websphere.management.async.client.AsyncCommandClient; public class EditBLA { public static void main(String[] args) { try { // Connect to the application server. // This step is optional if you use the local command manager. // Comment out the following lines to get the soapClient soap client if // you are going to use the local command manager. You would // comment out the lines to and including // CommandMgr cmdMgr = // CommandMgr.getClientCommandMgr(soapClient); String host = "localhost"; // Change to your host if it is not localhost. String port = "8880"; // Change to your port number if it is not 8880. Properties config = new Properties(); config.put(AdminClient.CONNECTOR_HOST, host); config.put(AdminClient.CONNECTOR_PORT, port); config.put(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP); System.out.println("Config: " + config); AdminClient soapClient = AdminClientFactory.createAdminClient(config); // Create command manager. CommandMgr cmdMgr = CommandMgr.getClientCommandMgr(soapClient); // Comment out the previous lines to create a client command // manager if you are using a local command manager. // Uncomment the following line to create a local command // manager. // // CommandMgr cmdMgr = CommandMgr.getCommandMgr(); System.out.println("\nCreated command manager"); // Optionally create an asynchronous command handler. // Comment out the following line if no further handling // of command notification is required. AsyncCmdTaskHandler listener = new AsyncCmdTaskHandler(); // Create an asynchronous command client. // Set up the session. // This example creates a new session. You can replace the // following code to use an existing session that has been // created. String id = Long.toHexString(System.currentTimeMillis()); String user = "content" + id; Session session = new Session(user, true); // If no command handler is used, replace the listener with // null for the following AsyncCommandClient object. AsyncCommandClient asyncCmdClientHelper = new AsyncCommandClient(session, listener); System.out.println("\nCreated async command client"); // Create the command. String cmdName = "getBLAStatus"; AdminCommand cmd = cmdMgr.createCommand(cmdName); cmd.setConfigSession(session); // Check the status // using the session // created System.out.println("\nCreated " + cmdName); // Set the required blaID parameter // Examples of valid formats for the blaID parameter are: // - bName // - blaname=bName // - WebSphere:blaname=bName String blaID = "MyBLA"; // Replace the MyBLA value with your // blaID value. cmd.setParameter("blaID", blaID); System.out.println("\nSet blaID parameter to " + cmd.getParameter("blaID")); // Optionally set the cuID parameter. String cuID = "myCU.zip"; // Replace the myCU.zip value with your // cuID value. cmd.setParameter("cuID", cuID); System.out.println("\nSet cuID parameter to " + cmd.getParameter("cuID")); // Optionally set the targetID parameter. // The format of the targetID parameter for a cluster // is WebSphere:cluster=cluster1 String targetID = "WebSphere:node=node1,server=server1"; // Replace // this with your targetID value. cmd.setParameter("targetID", targetID); System.out.println("\nSet targetID parameter to " + cmd.getParameter("targetID")); // Call the asynchronous client helper to process parameters. try { asyncCmdClientHelper.processCommandParameters(cmd); System.out.println("\nCompleted processCommandParameters"); } catch (Throwable th) { System.out.println("Throwing an exception from " + "asyncCmdClientHelper.processCommandParameters(cmd)."); th.printStackTrace(); System.exit(-1); } // Run the command to check the status of the // business-level application. asyncCmdClientHelper.execute(cmd); System.out.println("\nCompleted command execution"); CommandResult result = cmd.getCommandResult(); if (result != null) { if (result.isSuccessful()) { System.out.println("\nCommand executed successfully " + "with result\n" + result.getResult()); } else { System.out.println("\nCommand executed with " + "Exception"); result.getException().printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } } } package com.ibm.ws.management.application.task; import com.ibm.websphere.management.cmdframework.provider.CommandNotification; import com.ibm.websphere.management.async.client.AsyncCommandHandlerIF; public class AsyncCmdTaskHandler implements AsyncCommandHandlerIF { public void handleNotification(CommandNotification notification) { // Add your own code here to handle the received notification. System.out.println("\nEXAMPLE: notification received: " + notification); } }
You can use the results of the status check to perform other tasks. For instance, if the results indicate that none of the composition units is started, you could start the business-level application.
In this information ...Related concepts
Related tasks
| IBM Redbooks, demos, education, and more(Index) |