Develop cacheable commands

Similar to the way servlets and JSP files can be stored in a cache, commands can also be cached for re-use. However, in this case, the unique cache IDs are generated based on methods and fields present in the command as input parameters. For example, a GetStockQuote command can have a symbol as its input parameter.

A unique cache ID is generated from the name of the command, plus the value of the symbol.

To develop a cacheable command, perform the following steps:

  1. Define an interface. The Command interface specifies the most basic aspects of a command. You must define an interface that extends one or more of the interfaces in the com.ibm.websphere.command package. The command package consists of three interfaces: a TargetableCommand, a CompensableCommand, and a CacheableCommand.

    For more information on the com.ibm.websphere.command package, see Package com.ibm.websphere.command Link to API documentation.

    Most commands implement the TargetableCommand interface, which allows the command to execute remotely. The code structure of a command interface for a targetable command is:

    ...
    import com.ibm.websphere.command.*;
    public interface MyCommand extends TargetableCommand { 
          // Declare application methods here
    }
    
  2. Provide an implementation class for the interface. Write a class that extends the CacheableCommandImpl class and implements your command interface. This class contains the code for the methods in your interface, the methods inherited from extended interfaces like the CacheableCommand interface, and the required or abstract methods in the CacheableCommandImpl class.

    You can also override the default implementations of other methods provided in the CacheableCommandImpl class.

See the following topics for more information about developing a cacheable command: