Configuring command caching
Cacheable commands are stored in the cache for reuse with a similar mechanism for servlets and JavaServer Pages (JSP) files.
About this task
A unique cache ID can generate from the name of the command, plus the value of the symbol.
To use command caching you must:
Procedure
Create a command.
Avoid trouble: For command caching to
operate properly, you must enable servlet caching.
Example
Cacheable commands are stored in the cache for reuse with
a similar mechanism for servlets and JavaServer Pages (JSP) files.
The following code examples illustrate how to use command caching for a simple stock quote command.
This code example illustrates a stock quote command bean. It accepts a ticker as an input parameter and produces a price as its output parameter:
public class QuoteCommand extends CacheableCommandImpl { private String ticker; private double price; // called to validate that command input parameters have been set public boolean isReadyToCallExecute() { return (ticker!=null); } // called by a cache-hit to copy output properties to this object public void setOutputProperties(TargetableCommand fromCommand) { QuoteCommand f = (QuoteCommand)fromCommand; this.price = f.price; } // business logic method called when the stock price must be retrieved public void performExecute()throws Exception {...} //input parameters for the command public void setTicker(String ticker) { this.ticker=ticker;} public String getTicker() { return ticker;} //output parameters for the command public double getPrice() { return price;}; }
This code example illustrates how to use the cache policy to cache the stock quote command object using the stock ticker as the cache key and a 60-second time-to-live:
<cache> <cache-entry> <class>command</class> <sharing-policy>not-shared</sharing-policy> <name>QuoteCommand</name> <cache-id> <component type="method" id="getTicker"> <required>true</required> </component> <priority>3</priority> <timeout>60</timeout> </cache-id> </cache-entry> </cache>