Sun ロゴ      前へ      目次      次へ     

Sun Java System Application Server Enterprise Edition 8.1 2005Q1 管理ガイド

第 13 章
J2EE コンテナ

この章では、サーバーに含まれている J2EE コンテナの設定方法について説明します。この章には次の節が含まれています。


J2EE コンテナについて

この節では、Application Server に含まれている J2EE コンテナについて説明します。

J2EE コンテナのタイプ

J2EE コンテナは J2EE アプリケーションコンポーネントの実行時サポートを提供します。J2EE アプリケーションコンポーネントは、コンテナのプロトコルとメソッドを使用して、サーバーが提供するほかのアプリケーションコンポーネントとサービスにアクセスします。Application Server は、アプリケーションクライアントコンテナ、アプレットコンテナ、Web コンテナ、および EJB コンテナを提供します。コンテナを示す図については、「Application Server のアーキテクチャ」の節を参照してください。

Web コンテナ

Web コンテナは、Web アプリケーションをホストする J2EE コンテナです。Web コンテナは、サーブレットと JSP (JavaServer Pages) の実行環境を開発者に提供することにより、Web サーバーの機能を拡張します。

EJB コンテナ

Enterprise JavaBeans (EJB コンポーネント) は、ビジネスロジックを含む Java プログラミング言語サーバーコンポーネントです。EJB コンテナは、Enterprise JavaBeans へのローカルアクセスとリモートアクセスを提供します。

Enterprise JavaBeans には、セッション Beans、エンティティ Beans、およびメッセージ駆動型 Beans の 3 つのタイプがあります。セッション Beans は一時的なオブジェクトやプロセスを表し、通常は 1 つのクライアントが使用します。エンティティ Beans は通常データベースに保持されている持続性データを表します。メッセージ駆動型 Beans は、メッセージを非同期でアプリケーションモジュールやサービスに渡すために使われます。

コンテナの機能としては、Enterprise JavaBean を作成したり、ほかのアプリケーションコンポーネントが Enterprise JavaBean にアクセスできるように Enterprise JavaBean をネーミングサービスにバインドしたり、認証されたクライアントだけが Enterprise JavaBean メソッドにアクセスできるようにしたり、Bean の状態を持続性データに保存したり、必要に応じて Bean を活性化したり非活性化したりすることがあります。


J2EE コンテナに関する管理コンソールタスク

一般的な Web コンテナ設定の設定

このリリースでは、管理コンソールの Web コンテナのためのコンテナ全体の設定はありません。

Web コンテナセッションの設定

この節では、Web コンテナの HTTP セッション設定について説明します。HTTP セッションは、持続ストアに書き込まれた状態データを持つ独自の Web セッションです。

セッションタイムアウト値を設定するには、次の手順に従います。

  1. ツリーコンポーネントで、「設定」ノードを選択します。
  2. 設定するインスタンスを選択します。
    1. 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。
    2. すべてのインスタンスのデフォルト設定を設定するには、default-config ノードを選択します。
  3. 「Web コンテナ」ノードを選択します。
  4. 「セッションプロパティ」タブをクリックします。
  5. 「セッションタイムアウト」フィールドで、セッションが有効である秒数を入力します。
  6. 「保存」をクリックします。

マネージャプロパティの設定

セッションマネージャを使用して、セッションを作成および破棄する方法、セッション状態を格納する場所、およびセッションの最大数を設定できます。

セッションマネージャの設定を変更するには、次の手順に従います。

  1. ツリーコンポーネントで「設定」ノードを選択します。
  2. 設定するインスタンスを選択します。
    1. 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。
    2. すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。
  3. 「Web コンテナ」ノードを選択します。
  4. 「マネージャプロパティ」タブをクリックします。
  5. リープ間隔の値を設定します。
  6. 「リープ間隔」フィールドで、非アクティブセッションデータがストアから削除されるまでの秒数を指定します。

  7. 最大セッションの値を設定します。
  8. 「最大セッション」フィールドで、許容されるセッションの最大数を指定します。

  9. セッションファイル名の値を設定します。
  10. 「セッションファイル名」フィールドで、セッションデータを格納するファイルを指定します。

  11. セッション ID ジェネレータクラス名の値を設定します。
  12. 「セッション ID ジェネレータクラス名」フィールドで、一意のセッション ID を生成するカスタムクラスを指定できます。サーバーインスタンスごとに 1 つのセッション ID ジェネレータクラスだけを作成できます。クラスタ内のすべてのインスタンスは、セッションキーの競合を防止するために、同じセッション ID ジェネレータを使用する必要があります。

    カスタムセッション ID ジェネレータクラスは、次のとおり com.sun.enterprise.util.uuid.UuidGenerator インタフェースを実装する必要があります。

    package com.sun.enterprise.util.uuid;

    public interface UuidGenerator {

            public String generateUuid();

            public String generateUuid(Object obj);  //obj is the session object

    }

    クラスは Application Server のクラスパスになければいけません。

  13. 「保存」をクリックします。

ストアプロパティの設定

  1. ツリーコンポーネントで「設定」ノードを選択します。
  2. 設定するインスタンスを選択します。
    1. 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。
    2. すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。
  3. 「Web コンテナ」ノードを選択します。
  4. 「ストアプロパティ」タブをクリックします。
  5. リープ間隔を設定します。
  6. 「リープ間隔」フィールドで、非アクティブセッションデータがストアから削除されるまでの秒数を指定します。

  7. 「保存」をクリックします。

一般的な EJB 設定の設定

この節では、サーバー上のすべての Enterprise JavaBean コンテナに適用される、次の設定を説明します。

デフォルト値をコンテナ別にオーバーライドするには、sun-ejb-jar.xml ファイル内で Enterprise JavaBeans の値を調整します。詳細については、『Application Server Developer's Guide』を参照してください。このガイドへのリンクについては、「詳細情報」を参照してください。

セッション格納位置

「セッション格納位置」フィールドは、ファイルシステムで非活性化された Beans と持続的な HTTP セッションが保存されるディレクトリを指定します。

非活性化された Beans とは、ファイルシステムのファイルに状態を書き込まれた Enterprise JavaBeans です。非活性化された Beans は、通常特定の時間内のアイドル状態にあり、現在クライアントによってアクセスされていません。

非活性化された Beans と同じく、持続的な HTTP セッションはファイルシステム上のファイルに状態を書き込まれた個別の Web セッションです。

「コミットオプション」フィールドで、コンテナがトランザクション間の非活性化されたエンティティ Bean インスタンスをキャッシュする方法を指定します。

オプション B はトランザクション間のエンティティ Bean インスタンスをキャッシュし、デフォルトで選択されます。オプション C はキャッシングを無効にします。

プール設定

Beans の作成によってパフォーマンスに影響を受けることなく、クライアントの要求に応答するために、コンテナは Enterprise JavaBeans のプールを保持します。これらの設定は、ステートレスセッション Beans とエンティティ Beans にだけ適用されます。

配備した Enterprise JavaBeans を使用するアプリケーションでパフォーマンス上の問題がある場合、プールを作成したり、既存のプールで保持される Beans の数を増やしたりすることによって、アプリケーションのパフォーマンスを向上させることができます。

デフォルトで、コンテナは Enterprise JavaBeans のプールを保持しています。

Enterprise JavaBeans のコンテナのプールの設定を調整するには、次の手順に従います。

  1. ツリーコンポーネントで「設定」ノードを選択します。
  2. 設定するインスタンスを選択します。
    1. 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。
    2. すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。
  3. 「EJB コンテナ」ノードを選択します。
  4. 「初期および最小プールサイズ」フィールドの「プール設定」で、コンテナがプールで作成する Beans の最小数を入力します。
  5. 「最大プールサイズ」フィールドで、コンテナが一度にプール内に保持する Beans の最大数を入力します。
  6. 「プールサイズ変更量」フィールドに、「プールアイドルタイムアウト」フィールドで指定した時間を超えて Beans がアイドル状態になった場合に、プールから削除される Beans の数を入力します。
  7. 「プールアイドルタイムアウト」フィールドに、プール内の Bean がプールから削除される前にアイドル状態でいられる時間を秒単位で入力します。
  8. 「保存」をクリックします。
  9. Application Server を再起動します。

キャッシュ設定

コンテナは、最もよく使われる Enterprise JavaBeans の Enterprise JavaBean データのキャッシュを保持します。これにより、コンテナはその Enterprise JavaBeans のデータに対するほかのアプリケーションモジュールからの要求により速く応答できます。この節が適用されるのは、ステートフルセッション Beans とエンティティ Beans だけです。

キャッシュされた Enterprise JavaBeans は、アクティブ、アイドル、または非活性化の 3 つのうち、いずれかの状態になっています。アクティブな Enterprise JavaBean には、現在クライアントがアクセスしています。アイドル Enterprise JavaBeans のデータは現在キャッシュにありますが、この Bean にアクセスしているクライアントはありません。非活性化 Bean のデータは一時的に保存されていて、クライアントが Bean を要求した場合はキャッシュに読み込まれます。

キャッシュされた Enterprise JavaBeans の設定を調整するには、次の手順に従います。

  1. ツリーコンポーネントで「設定」ノードを選択します。
  2. 設定するインスタンスを選択します。
    1. 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。
    2. すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。
  3. 「EJB コンテナ」ノードを選択します。
  4. 「最大キャッシュサイズ」フィールドで最大キャッシュサイズを調整します。
  5. Bean の作成と破棄のオーバーヘッドをなくすために、キャッシュする Beans の最大数を大きくします。ただし、キャッシュを大きくした場合、サーバーはより大きなメモリとリソースを消費します。キャッシュ設定に対して動作環境が十分であることを確認してください。

  6. 「キャッシュのサイズ変更量」フィールドで、キャッシュのサイズ変更量を調整します。
  7. キャッシュされた Beans の最大数に達すると、コンテナは複数の非活性化 Beans を、デフォルトで 32 に設定されたバックアップストアから削除します。

  8. 「キャッシュアイドルタイムアウト」フィールドで、エンティティ Beans にスケジュールされたキャッシュクリーンアップの間隔を秒単位で調整します。
  9. キャッシュされたエンティティ Bean が一定時間アイドル状態になった場合、Bean は非活性化されます。つまり、その Bean の状態がバックアップストアに書き込まれます。

  10. 「削除タイムアウト」フィールドで、ステートフルセッション Beans をキャッシュストアまたは非活性化ストアから削除する時間を秒単位で調整します。
  11. 「選択内容の削除ポリシー」フィールドで、コンテナがステートフルセッション Beans を削除するために使用するポリシーを設定します。
  12. 「選択内容の削除ポリシー」フィールドに設定されたポリシーに基づいて、コンテナは削除するステートフルセッション Beans を決定します。コンテナがキャッシュから Beans を削除するために使えるポリシーには次の 3 つがあります。

    • 最近使用されていない (NRU)
    • ファーストインファーストアウト (FIFO)
    • 最近の使用頻度がもっとも低い (LRU)
    • NRU ポリシーでは、最近もっとも使われていない Bean を削除します。FIFO ポリシーでは、キャッシュ内でもっとも古い Bean を削除します。LRU ポリシーでは、最近もっともアクセスされていない Bean を削除します。デフォルトでは、コンテナがNRU ポリシーを使うように設定されています。

      エンティティ Beans は常に FIFO ポリシーを使って削除されます。

  13. 「保存」をクリックします。
  14. Application Server を再起動します。

メッセージ駆動型 Bean 設定の設定

メッセージ駆動型 Beans のプールは、「一般的な EJB 設定の設定」で説明したセッション Beans のプールと似ています。

デフォルトで、コンテナはメッセージ Beans のプールを保持しています。

このプールの設定を調整するには、次の手順に従います。

  1. ツリーコンポーネントで「設定」ノードを選択します。
  2. 設定するインスタンスを選択します。
    1. 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。
    2. すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。
  3. 「EJB コンテナ」ノードを選択します。
  4. 「MDB 設定」タブをクリックします。
  5. 「初期および最小プールサイズ」フィールドの「プール設定」で、コンテナがプールで作成するメッセージ Beans の最小数を入力します。
  6. 「最大プールサイズ」フィールドで、コンテナが一度にプール内に保持する Beans の最大数を入力します。
  7. 「プールサイズ変更量」フィールドに、「プールアイドルタイムアウト」フィールドで指定した時間を超えて Beans がアイドル状態になった場合に、プールから削除される Beans の数を入力します。
  8. 「プールアイドルタイムアウト」フィールドに、プール内の Bean がプールから削除される前にアイドル状態でいられる時間を秒単位で入力します。
  9. 「保存」をクリックします。
  10. Application Server を再起動します。

EJB タイマーサービス設定の設定

タイマーサービスは、Enterprise JavaBeans により通知やイベントをスケジュールするのに使われ、Enterprise JavaBean コンテナが提供する持続的なトランザクション通知サービスです。ステートフルセッション Beans 以外の Enterprise JavaBeans はすべて、タイマーサービスからの通知を受信できます。このサービスによって設定されたタイマーは、サーバーのシャットダウンや再起動では破棄されません。

タイマーサービスの設定

  1. ツリーコンポーネントで「設定」ノードを選択します。
  2. 設定するインスタンスを選択します。
    1. 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを選択します。
    2. すべてのインスタンスのデフォルト値を設定するには、default-config ノードを選択します。
  3. 「EJB コンテナ」ノードを選択します。
  4. 「EJB タイマーサービス」タブをクリックします。
  5. 「最小配信間隔」フィールドで、最小配信間隔をミリ秒単位で設定します。最小配信間隔とは、次のタイマーの有効期限が切れて特定のタイマーの発生が可能になるまでのミリ秒単位の時間です。この間隔の設定が短すぎると、サーバーがオーバーロードする可能性があります。
  6. 「最大再配信回数」フィールドで、タイマーサービスが通知の配信を試みる最大回数を設定します。
  7. 「再配信間隔」フィールドで、再配信を試みる間隔をミリ秒単位で設定します。
  8. 「保存」をクリックします。
  9. Application Server を再起動します。

タイマーサービスでの外部データベースの使用

デフォルトで、タイマーサービスはタイマーを格納するために埋め込みデータベースを使います。

タイマーの格納に外部データベースを使うには次の手順に従います。

  1. 「JDBC リソースの作成」で説明されているとおり、データベースの JDBC リソースを設定します。
  2. 「タイマーデータソース」フィールドで、そのリソースの JNDI 名を入力します。
  3. 「保存」をクリックします。
  4. Application Server を再起動します。

PointBase や Oracle のタイマーデータベース作成ファイルのサンプルは、<INSTALL_DIR>/lib/install/databases/ で提供されています。



前へ      目次      次へ     


Copyright 2004 - 2005 Sun Microsystems, Inc. All rights reserved.