+

Search Tips   |   Advanced Search

Create an empty business-level application using programming


We can create an empty business-level application, and then add assets or business-level applications as composition units to the empty business-level application.

This task assumes a basic familiarity with command framework programming. Read about command framework programming in the APIs documentation.

We can create an empty business-level application using programming, the admin console, or wsadmin.

Perform the following steps to create an empty business-level application using programming. In the code that creates the empty business-level application, provide the name parameter. The name parameter specifies the name of the business-level application created.

 

  1. Connect to the appserver.

    The command framework allows the admin command to be created and run with or without being connected to the appserver. This step is optional if the application server is not running.

  2. Create the command manager.

    The command manager provides the functionality to create a new admin command or query existing administrative commands.

  3. Optionally create the asynchronous command handler for listening to command notifications.

    Business-level application commands are implemented as asynchronous commands. To monitor the progress of the running command, we have to create an asynchronous command handler to receive notifications that the command generates.

  4. Create the asynchronous command client.

    An asynchronous command client provides a higher level interface to work with an asynchronous command. If we created an asynchronous command handler in the previous step, the handler is passed to the asynchronous command client. The asynchronous command client forwards the command notification to the handler and helps to control running of the command.

  5. Use the command manager createdd in a previous step to create and set up the command that creates an empty business-level application.

    The command name is createEmptyBLA. The name parameter is a required parameter that you use to specify the name of the business-level application. We can optionally provide the description parameter to provide a description of the newly created business-level application.

  6. Call the processCommandParameters method in the asynchronous command client to process the command parameters.

    The command framework asynchronous command model requires this call.

  7. Call the execute method in the asynchronous command client to run the command that creates an empty business-level application.

    You might have created an asynchronous command handler to implement the AsyncCommandHandlerIF interface class in a previous step. If we did, the asynchronous command client listens to command notifications and forwards the notifications to the handler. The handler performs any necessary actions while waiting for the command to complete.

  8. Check the command result when the command completes.

    When the command finishes running, control is returned to the caller. We can then check the result by calling the command.getCommandResult method.

 

Results

After you successfully run the code, the empty business-level application is created.

 

Example

The following example shows how to create an empty 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.exception.AdminException;
 import com.ibm.websphere.management.async.client.AsyncCommandClient;
 public class CreateEmptyBLA {

    public static void main(String[] args) {

        try {

        
// Connect to the appserver.
        
// This step is optional if we use the local 
        
// command manager. Comment out the lines to and including
        
// CommandMgr cmdMgr = CommandMgr.getClientCommandMgr(
        
// soapClient);
        
// to get the soapClient soap client if we use the local
        
// command manager.
        
        String host = "localhost";
        String port = "8880";
 
        
// Change to the 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 the command manager.
        CommandMgr cmdMgr = CommandMgr.getClientCommandMgr(soapClient);

        
// Comment out the previous lines to create a client command
        
// manager if we 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
        
// for listening to command notifications.
        
// 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.
        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 AsyncCommandClient object that follows.

        AsyncCommandClient asyncCmdClientHelper = new  
                     AsyncCommandClient(session, listener);
        System.out.println("\nCreated async command client");

        
// Create the command that creates an empty
        
// business-level application.
        String cmdName = "createEmptyBLA";

        AdminCommand cmd = cmdMgr.createCommand(cmdName);
        cmd.setConfigSession(session);
        
// Create an empty 
        
// business-level application using 
        
// the session created.
        System.out.println("\nCreated " + cmdName);

        
// Set the name command parameter.
        String blaName = "bla1";
        cmd.setParameter("name", blaName);

        System.out.println("\nSet name parameter to "
                            + cmd.getParameter("name"));

        
// Uncomment the following lines to set the description of
        
// the business-level application being created:
        
//
        
// String blaDescription = "description for bla1";
        
// cmd.setParameter("description", blaDescription);
        
// System.out.println("\nSet description parameter to " +
        
//                    cmd.getParameter("description"));

        
// Call the asynchronous command client to 
        
// process the command parameters.
        try {             
             asyncCmdClientHelper.processCommandParameters(cmd);
             System.out.println("\nCompleted process command " + 
                                "parameters");
        } catch (Throwable th) {
            System.out.println("Failed from " + 
                "asyncCmdClientHelper.processCommandParameters(cmd).");
            th.printStackTrace();
            System.exit(-1);
        }

        
// Call the asynchronous command client to run the command.
        asyncCmdClientHelper.execute(cmd);
        System.out.println("\nCompleted command execution");

        
// Check the command result.
        CommandResult result = cmd.getCommandResult();
        if (result != null) {
             if (result.isSuccessful()) {
                System.out.println("\nCommand ran successfully "
                       + "with result\n" + result.getResult());
             } else {
                System.out.println("\nCommand ran 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 our own code here to handle the received notification.
        System.out.println("\nEXAMPLE: notification received: " +   
                            notification);
    }
}

 

Next steps

We can add business-level applications or assets as composition units into the newly created business-level application. Alternatively, we can add the newly created business-level application to other business-level applications.


Additional Application Programming Interfaces (APIs)

 

Related tasks


Administer business-level applications using programming
Deploy business-level applications
Add a composition unit using programming
Starting a business-level application using programming
Stopping a business-level application using programming
Delete a business-level application using programming
Listing business-level applications using programming
Set up business-level applications using scripting

 

Related


BLAManagement