動的キャッシュ・サービスの使用
動的キャッシュ・サービスを使用し、サーブレット、Web サービス、および WebSphere® Application Server コマンドの出力をメモリーにキャッシュすることによってアプリケーション・パフォーマンスを向上させます。
始める前に
このタスクについて
手順
- 「サーバー」>「サーバー・タイプ」>「WebSphere® Application Servers」> 「server_name」 >「コンテナー・サービス」>「動的キャッシュ・サービス」とクリックします。
- デフォルトのキャッシュ・インスタンスを構成するか、リンク先でサーブレットまたはポートレット・キャッシングを使用可能にします。 デフォルトのキャッシュ設定について詳しくは、『動的キャッシュ・サービスの設定』を参照してください。
例
この例は、cachespec.xml ファイルを使用して動的キャッシュ・サービスを構成するためのすべてのステップをまとめたもので、 キャッシュ ID 生成規則、依存関係 ID、および無効化規則の使用について示します。
サーブレットが簡単なニュース・サイトを管理していると仮定します。このサーブレットは、照会パラメーター「action」を使用して、
その要求がニュースを表示 (照会パラメーター「view」)、あるいはニュースを更新 (照会パラメーター「update」) するのかを判別します (管理者が使用)。
別の照会パラメーター「category」を使用して、ニュースのカテゴリー
を選択します。
このサイトでは、
オプションのカスタマイズされたレイアウトがサポートされており、
これは、「layout」という属性名を使用して、
ユーザーのセッションに保管されているものとします。
このサーブレットに対する URL 要求例は、以下のとおりです。
- http://yourhost/yourwebapp/newscontroller?action=view&category=sports (スポーツ・カテゴリーのニュース・ページを戻す)
- http://yourhost/yourwebapp/newscontroller?action=view&category=money (金融カテゴリーのニュース・ページを戻す)
- http://yourhost/yourwebapp/newscontroller?action=update&category=fashion (管理者がファッション・カテゴリーのニュースを更新できるようにする)
この例の動的キャッシュ・サービスを、cachespec.xml ファイルを使用して 構成するためのステップは以下のとおりです。
- サーブレットの識別に必要な <cache-entry> エレメントを定義します。
この場合、サーブレットの URI は「newscontroller」であり、これが
cache-entry の
<name> エレメントになります。 この例では、サーブレットまたは JavaServer Pages
(JSP) ファイルをキャッシュしているので、キャッシュ・エントリーのクラ
スは「servlet」です。
<cache-entry> <name> /newscontroller </name> <class>servlet </class> </cache-entry>
- キャッシュ ID 生成規則を定義します。
このサーブレットは、action=view のときにのみキャッシュするため、値が「view」に等しいときは、キャッシュ ID の 1 つのコンポーネントはパラメーター「action」ということになります。
ニュース・カテゴリーは、キャッシュ ID の不可欠な部分でもあります。
ユーザーのレイアウトに関するオプションのセッション属性は、
キャッシュ ID に組み込まれます。
ここでキャッシュ・エントリーは以下のとおりです。
<cache-entry> <name> /newscontroller </name> <class>servlet </class> <cache-id> <component id="action" type="parameter"> <value>view</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> <component id="layout" type="session"> <required>false</required> </component> </cache-id> </cache-entry>
- 依存関係 ID 規則を定義します。
このサーブレットの場合、依存関係 ID がカテゴリーに追加されます。
後で、カテゴリーが更新イベントのために無効になったときに、
ニュース・カテゴリーのすべてのビューは無効になります。
依存関係 ID を追加後のキャッシュ・エントリーの例を以下に示します。
<cache-entry> <name>newscontroller </name> <class>servlet </class> <cache-id> <component id="action" type="parameter"> <value>view</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> <component id="layout" type="session"> <required>false</required> </component> </cache-id> <dependency-id>category <component id="category" type="parameter"> <required>true</required> </component> </dependency-id> </cache-entry>
- 無効化規則を定義します。
カテゴリー依存関係 ID が既に定義されているので、
action=update の場合にカテゴリーを無効にする無効化規則を定義します。
条件ロジックを取り込むには、
無効化規則に "ignore-value" コンポーネントを追加します。
これらのコンポーネントは、無効化 ID の出力を追加するのではなく、
無効化 ID を作成して実行するのかどうかのみを決定します。
最終的なキャッシュ・エントリーは以下のようになります。
<cache-entry> <name>newscontroller </name> <class>servlet </class> <cache-id> <component id="action" type="parameter"> <value>view</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> <component id="layout" type="session"> <required>false</required> </component> </cache-id> <dependency-id>category <component id="category" type="parameter"> <required>true</required> </component> </dependency-id> <invalidation>category <component id="action" type="parameter" ignore-value="true"> <value>update</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> </invalidation> </cache-entry>