コマンド・キャッシングの構成

キャッシュ可能なコマンドは、サーブレットおよび JavaServer Pages (JSP) ファイルの同様のメカニズムで再使用するために、キャッシュに保管されます。

このタスクについて

しかし、この場合、コマンド内の入力パラメーターとして存在するメソッドとフィールドに基づいて固有キャッシュ ID が生成されます。 例えば、GetStockQuote コマンドは、入力パラメーターとして記号を持つことができます。

固有のキャッシュ ID は、コマンドの名前にその記号の値を加えたものから生成されます。

コマンド・キャッシング を使用するには、以下を行う必要があります。

手順

コマンドを作成します。
  1. インターフェースを定義します。 コマンド・インターフェースは、コマンドの最も基本的な局面を指定します。

    コマンド・パッケージ内の 1 つ以上のインターフェースを拡張するインターフェースを定義 する必要があります。コマンド・パッケージは、次の 3 つのインターフェースで構成されています。

    • TargetableCommand
    • CompensableCommand
    • CacheableCommand
    実際は、ほとんどのコマンドが TargetableCommand インターフェースを実装します。 このインターフェースを使用すると、コマンドをリモートで実行することができます。 ターゲット指定コマンドのコマンド・インターフェースのコード構造は、以下のとおりです。
    ...
    import com.ibm.websphere.command.*;
    public interface MyCommand extends TargetableCommand { 
          // Declare application methods here
    }
  2. インターフェースに実装クラスを提供します。 CacheableCommandImpl クラスを拡張し、コマンド・インターフェースを実装する インターフェースを作成します。このクラスには、インターフェース内のメソッド、 CacheableCommand インターフェースのような拡張インターフェースから継承したメソッド、 および CacheableCommandImpl クラスの必須または抽象メソッドのコードが含まれています。

    CacheableCommandImpl クラスで提供される他のメソッドのデフォルト実装は、 無効にすることもできます。

トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): コマンドのキャッシングが正常に動作するには、サーブレット・キャッシングを使用可能にする必要があります。gotcha

キャッシュ可能なコマンドは、サーブレットおよび JavaServer Pages (JSP) ファイルの同様のメカニズムで再使用するために、キャッシュに保管されます。

以下の コード例は、単純な株価情報コマンドに対してコマンド・キャッシングを使用する方法を 示します。

このコーディング例は、 株価情報コマンド Bean を示しています。これは、入力パラメーターとして ticker を受け取り、 出力パラメーターとして price を生成します。

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;};
}

次のコード例は、 キャッシュ・キーに証券コード (ティッカー) を使用し、存続期間を 60 秒にして、株価情報コマンド・オブジェクトをキャッシュ に入れる場合に、どのようにキャッシュ・ポリシーを使用すればいいのかを示します。

<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>

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdyn_cachecommands
ファイル名:tdyn_cachecommands.html