ページの先頭行へ戻る
Interstage Studio J Business Kit 解説書
FUJITSU Software

2.3.13 アプレットの独自キャッシュ

JBKプラグインが行うアプレットの独自キャッシュを説明します。

従来のJBKプラグインはブラウザのキャッシュ機能を用いてアプレットをキャッシュします。“2.3.6 アプレットのダウンロード方式の指定”にあるように、ブラウザの機能を用いてダウンロードされたファイルはブラウザのローカルキャッシュに保存されます。しかしブラウザのローカルキャッシュであるため、キャッシュの容量が一杯になるとブラウザが自動的にキャッシュをクリアしてしまいます。このため、Webサーバのアプレットを更新していないにも関わらず不必要にアプレットがダウンロードされる場合があります。

このような状況を防ぐため、JBKプラグインでは新たにアプレットの独自キャッシュを用意しました。後述の設定を行うことで、アプレットはブラウザのローカルキャッシュではなくJBKプラグインの独自キャッシュに保存されるようになります。独自キャッシュに保存されたアプレットが自動的に削除されることはありませんので、Webサーバのアプレットが更新されないうちは不要なダウンロードが行われることはありません。ブラウザのキャッシュを用いて不便を感じている場合には、アプレットの独自キャッシュを使用されることをお勧めします。

独自キャッシュの使用可能条件

JBKプラグインの独自キャッシュは以下の条件においてのみ使用可能です。

この3種類以外のファイルを独自キャッシュの対象にしたい場合には、アプリケーションからJBKプラグインのキャッシュAPIを呼び出す必要があります。詳しくは“JBKプラグインのキャッシュAPI”を参照してください。

独自キャッシュの設定方法

JBKプラグインの独自キャッシュを使用する場合には、jbkplugin.propertiesの中に以下の行を記述してください。

jbk.plugin.www.plugin_cache.enable=<独自キャッシュを使用する/しない>
jbk.plugin.www.plugin_cache.dir=<独自キャッシュの保存フォルダ>
jbk.plugin.www.plugin_cache.dir.freespace=<独自キャッシュの保存フォルダの空き容量指定>
jbk.plugin.www.plugin_cache.update=<独自キャッシュの更新条件>
jbk.plugin.www.plugin_cache.accelerate=<更新条件が“newer”のときの高速化を行う/行わない>

各プロパティには、以下の情報を設定します。

独自キャッシュの動作

JBKプラグインの独自キャッシュの動作は次のようになります。

JBKプラグインのキャッシュAPI

JBKプラグインの独自キャッシュが正しく動作するには、アプレット上の異なる2つのスレッドからWebサーバ上の同じファイルを同時にダウンロードすることがない(ファイルの同時ダウンロードが発生しない)、ということが保証されている必要があります。

デフォルトで独自キャッシュの対象となっている3種類のファイル(クラスファイル、JARファイルおよびイメージファイル)は、同時ダウンロードが発生しないことがJava VM内部で保証されています。これら以外のファイルは、ユーザがそのファイルの同時ダウンロードが発生しないことを保証できる場合に限り、アプレットからJBKプラグインのキャッシュAPIを呼び出してそのファイルを独自キャッシュの対象とすることができます。

JBKプラグインのキャッシュAPIは次のとおりです。

PluginCacheControllerクラスのクラスファイルは、JBKプラグインの開発用jarファイルに格納されています(JBKをインストールしたフォルダ配下の“classes\jbkstd.jar”になります)。このクラスを使用したアプレットのクラスをコンパイルする場合は、クラスパスにJBKプラグインの開発用jarファイルが含まれていることを確認してください。

JBKプラグインのキャッシュAPIを呼び出す実装例

  • 通常のダウンロード処理の例

    // URLオブジェクトの作成
    URL url = new URL(/* ダウンロードするファイルのURL */);
    // URLConnectionの取得
    URLConnection conn = url.openConnection();
    // ダウンロード用の入力ストリームの取得
    InputStream in = conn.getInputStream();
    
    /* 以下InputStreamを用いたファイルの読込み処理 */
  • JBKプラグインのキャッシュAPIを用いたダウンロード処理の例

    // import文
    import com.fujitsu.jbk.plugin.browser.www.PluginCacheController;
    // URLオブジェクトの作成
    URL url = new URL(/* ダウンロードするファイルのURL */);
    
    // 独自キャッシュを使用するためのURLオブジェクトの取得
    try {
        url = PluginCacheController.getInstance().getCachedURL(url);
    } catch (Throwable ignore) {
        // ここで発生したエラーに対しては何も行わなくてもよい。
        // 独自キャッシュが働かなくてもファイルのダウンロードは
        // 問題なく行えるので、アプリケーションは正常動作できる。
    }
    
    // URLConnectionの取得
    URLConnection conn = url.openConnection();
    // ダウンロード用の入力ストリームの取得
    InputStream in = conn.getInputStream();
    
    /* 以下InputStreamを用いたファイルの読込み処理 */

独自キャッシュについて