Sun Java System Web Server 7.0 管理ガイド

第 11 章 Java と Web アプリケーションの操作

この章では、仮想サーバーの Java 設定を編集する手順について説明します。Java 設定の編集は、管理コンソール、wadm コマンド行ツールのいずれかから行えます。この章では、Sun Java System Web Server で構成可能な各種 Java リソースについても説明します。

この章では、Sun Java System Web Server での Java Web アプリケーションの配備方法についても説明します。

Sun Java System Web Server と連携動作するように Java を構成

この節では、選択された構成で Java を有効にし、Java ホーム変数を設定できるようにします。

Procedure構成の Java の有効化

  1. 構成を選択します。

    構成のリストから構成を選択します。利用可能な構成のリストを取得するには、「構成」タブをクリックします。

  2. 「Java」>「一般」タブをクリックします。

  3. 「Java を有効にする」チェックボックスをクリックします。

    構成の Java サポートの有効/無効を切り替えます。Java を有効にすると、サーバーが Java アプリケーションを処理できるようになります。

  4. 「Java ホーム」を設定します。

    Java SE の場所を指定します。絶対パス、サーバーの config ディレクトリからの相対パスのいずれかを指定します。

  5. 「スティキーを張り付ける」を設定します。

    サーバーが各 HTTP 要求処理スレッドを JVM に一度だけ接続するかどうかを指定します (一度だけ接続しない場合、サーバーは要求が発生するたびに HTTP 要求処理スレッドの接続/接続解除を行う)。


    注 –

    CLI の使用

    構成の Java を有効にするには、次のコマンドを実行します。


    wadm> enable-java --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1

    CLI リファレンスの enable-java(1) を参照してください。


Java クラスパスの設定

この節では、選択された構成の JVM クラスパスを追加できるようにします。

ProcedureJava クラスパスを設定する

  1. 構成を選択します。

    構成のリストから構成を選択します。利用可能な構成のリストを取得するには、「構成」タブをクリックします。

  2. 「Java」>「パス設定」タブをクリックします。

    次のパラメータを編集します。

    • 環境クラスパスを無視 — デフォルトで有効になっています。

    • クラスパスのプレフィックス — システムクラスパスのプレフィックス。システムクラスパスのプレフィックスを追加するのは、XML パーサークラスなどのシステムクラスを上書きする場合だけにすべきです。これは注意して使用してください

    • サーバークラスパス — サーバークラスを含むクラスパス。読み取り専用のリスト。

    • クラスパスのサフィックス — クラスパスの末尾に追加します。

    • ネイティブライブラリパスのプレフィックス — オペレーティングシステムのネイティブライブラリパスのプレフィックス。

    • バイトコードプリプロセッサクラスcom.sun.appserv.BytecodePreprocessor を実装するクラスの完全修飾名。実行時クラスインストゥルメンテーションを実行するための典型的な方法は、前処理機構を使用することです。この機構では、プロファイリングおよび監視ツールが、JVM によって Java クラスが読み込まれる直前に、クラスプリプロセッサを使って Java クラス内の必要な場所にインストゥルメンテーションコードを挿入します。この目的のために、クラスプリプロセッサはクラスローダーと連携して動作します。

JVM の構成

管理インタフェースで JVM コマンド行オプションを設定するには、次のタスクを実行します。

ProcedureJVM を構成する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「Java」>「JVM 設定」タブをクリックします。

    JVM の設定を構成します。

JVM オプションの追加

ここで値を指定することで、コマンド行 JVM オプションを追加/削除できます。

JVM オプションを追加するには、「JVM オプションを追加」ボタンをクリックします。

JVM オプションの例を次にいくつか示します。-Djava.security.auth.login.config=login.conf、-Djava.util.logging.manager=com.iplanet.ias.server.logging.ServerLogManager、および -Xms128m -Xmx256m


注 –

CLI の使用

CLI 経由で JVM オプションを追加するには、次のコマンドを実行します。


wadm> create-jvm-options --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 -Dhttp.proxyHost=proxyhost.com -Dhttp.proxyPort=8080

CLI リファレンスの create-jvm-options(1) を参照してください。


JVM プロファイラの追加

JVM プロファイラは、アプリケーションの最高レベルの安定性とスケーラビリティーを確実にするために、Java アプリケーションのパフォーマンスの問題、メモリーのリーク、マルチスレッドの問題、およびシステムリソース使用率の問題の診断と解決に役立ちます。

ProcedureJVM プロファイラを追加する

  1. 構成を選択します。

    構成のリストから構成を選択します。利用可能な構成のリストを取得するには、「構成」タブをクリックします。

  2. 「Java」>「JVM 設定」タブをクリックします。

  3. 「プロファイラ」セクションの「新規」ボタンをクリックします。

  4. 次の各パラメータの値を入力します。

    • 名前 — 新しい JVM プロファイラの簡易名を入力します。

    • 有効 — 実行時にプロファイラを有効にするかどうかを決定します。

    • クラスパス — プロファイラの有効なクラスパスを入力します。(省略可能)。

    • ネイティブライブラリパス — 有効なネイティブライブラリパスを入力します。(省略可能)。

    • JVM オプション — CLI の追加の JVM オプションを指定できます。


    注 –

    CLI の使用

    CLI 経由で JVM プロファイラを追加するには、次のコマンドを実行します。


    wadm> create-jvm-profiler --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1

    CLI リファレンスの create-jvm-profiler(1) を参照してください。


サーバーの Java デバッグの有効化

JVM はデバッグモードで起動でき、JPDA (Java Platform Debugger Architecture) デバッガと接続できます。デバッグを有効にすると、ローカルとリモートのデバッグがどちらも有効になります。

Sun Java System Web Server のデバッグは JPDA ソフトウェアに基づいています。デバッグを有効にするには、次のタスクを実行します。

ProcedureJVM デバッグの有効化

  1. 構成を選択します。

    構成のリストから構成を選択します。利用可能な構成のリストを取得するには、「構成」タブをクリックします。

  2. 「Java」>「JVM 設定」タブをクリックします。

  3. 「Java 設定のデバッグ」で「デバッグを有効にする」チェックボックスを選択します。

  4. 必要であれば、「新規」ボタンをクリックして JVM オプションを入力します。

    デフォルトの JPDA オプションは次のとおりです。


    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7896

    代わりに suspend=y に使用すると、JVM は中断モードで起動され、デバッグが接続するまで中断された状態に保たれます。これは、JVM の起動後すぐにデバッグを開始したい場合に便利です。JVM をデバッガに接続するときに使用するポートを指定するには、address=port_number を指定します。デバッグオプションの一覧については、JPDA のドキュメントを確認してください。

Java Web アプリケーションの配備

Web アプリケーションの追加

Web アプリケーションは、どの既存の仮想サーバーにも配備できます。

ProcedureWeb アプリケーションを配備する

始める前に
Sun Java System Web Server 7.0

Web アプリケーションの配備は、wadm、管理コンソール、およびその他のサポートされている IDE 経由で行えます。

  1. Web アプリケーションを配備するには、あるサーバー構成の下で「仮想サーバー 」タブをクリックします。

  2. Web アプリケーションを配備する必要のある仮想サーバーを選択します。

  3. 「Web アプリケーション」タブ>「新規」ボタンをクリックします。

  4. Web アプリケーションのパッケージを指定します。

    Web アプリケーションアーカイブをアップロードする必要がある場合は、「参照」ボタンをクリックしてアーカイブを選択します。あるいは、サーバーに格納されている Web アプリケーションアーカイブを指定することもできます。

  5. Web アプリケーションの URI を指定します。これがアプリケーションのコンテキストルートになりますが、これはサーバーホストに対する相対パスです。

  6. Web アプリケーションについての簡単な説明を入力します。

  7. 「JSP プリコンパイル」を有効化/無効化します。

    この指令を有効にすると、Web アプリケーション内に存在するすべての JSP がプリコンパイルされるため、パフォーマンスが向上します。

  8. アプリケーションを有効にします。

    Web アプリケーションの状態を「無効」に設定すると、そのアプリケーションは要求を処理できません。ただし、このオプションは、アプリケーションをインスタンスに再配備することなしに、いつでも切り替えられます。

  9. アプリケーションを配備します。

    「配備」ボタンをクリックして Web アプリケーションを配備します。

    コンテキストルートを指定することでアプリケーションにアクセスできます。例: http://<your-server>:<port>/<URI>


    注 –

    CLI の使用


    wadm> add-webapp --user=admin --password-file=admin.passwd --host=localhost 
     --port=8888 --config=config1 --vs=HOSTNAME --uri=/hello /home/test/hello.war

    CLI リファレンスの add-webapp(1) を参照してください。


Web アプリケーションのディレクトリの配備

管理サーバーホストマシン上のディレクトリをある構成に配備するには、–file-on-server オプションを使用します。次のコマンドを実行します。


wadm> add-webapp --user=admin-user --password-file=admin.passwd 
--port=8989 --vs=vs1 --config=config1 --file-on-server
--uri=/mywebapp /space/tmp/mywebapp

配備中の JSP のプリコンパイル

Web アプリケーションの配備中にそのアプリケーションに含まれる JSP をプリコンパイルするには、次のように –precompilejsp オプションを指定してコマンドを実行します。


wadm> add-webapp --user=admin-user --password-file=admin.passwd 
--port=8989 --vs=vs1 --config=config1 --file-on-server --uri=/mywebapp
--precompilejsp mywebapp.war

サーブレットコンテナの構成

この節では、サーブレットコンテナの構成手順について説明します。

Procedureサーブレットコンテナを設定する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「Java」>「サーブレットコンテナ」をクリックします。

サーブレットコンテナのグローバルパラメータ

次の表では、サーブレットコンテナのページで利用可能なパラメータについて説明します。

表 11–1 サーブレットコンテナのパラメータ

パラメータ

説明

ログレベル

サーブレットコンテナのログの冗長レベル。値は、もっとも詳細 (もっとも冗長)、より詳細、詳細、情報、警告、失敗、構成、セキュリティー、または重大 (もっとも冗長でない) にすることができます。 

動的再読み込み間隔

このパラメータは、配備済み Web アプリケーションが変更されていないかサーバーがチェックする時間間隔を定義します。値の範囲は 1 から 60 までです。ただし、動的再読み込みを無効にする場合は –1 にします。 

匿名ロール

すべての主体割り当てられるデフォルトまたは匿名のロールの名前。デフォルトのロールは ANYONE です。 

サーブレットプールサイズ

SingleThreadedServlet ごとにインスタンス化するサーブレットインスタンスの数。値の範囲は 1 から 4096 までです。

ディスパッチャー最大実行範囲

入れ子の要求ディスパッチを許可するサーブレットコンテナの最大実行範囲。値の範囲は 0 から 2147.0483647.0 までです。デフォルト値は 20 です。 

クロスコンテキストを許可

要求ディスパッチに別のコンテキストへのディスパッチを許可するかどうか。デフォルト値は false です。 

Cookie を符号化

サーブレットコンテナが Cookie の値を符号化するかどうか。デフォルト値は true です。 

セッション ID を再利用

既存のセッション ID の番号をそのクライアントの新しいセッションを作成するときに再利用するかどうか。デフォルト値は false です。 

セキュアセッション Cookie

動的/True/False。このパラメータは、どのような条件下で JSESSIONID Cookie がセキュアとマークされるかを制御します。セキュリティー保護された接続 (HTTPS) で要求が受信された場合にのみ Cookie をセキュアとマークするには、「動的」(デフォルト) を使用します。 

常にセキュアとマークする場合は「True」を、決してセキュアとマークしない場合は「False」を、それぞれ選択します。 

サーバーライフサイクルモジュールの構成

Java サーバーライフサイクルモジュールはサーバーのライフサイクルイベントを待機する Java クラスであり、その目的は、サーバーの起動や停止といったサーバーイベントが発生するたびに特定のタスクを実行することにあります。

このサーバーは、Web サーバー環境内での Java ベースの短期または長期タスクの実行をサポートします。これらのタスクは、サーバー起動時に自動的に起動され、サーバー停止時にその旨を通知されます。このため、シングルトンや RMI サーバーのインスタンス化などのタスクを組み込むことが可能となります。

サーバーのライフサイクルについての簡単な説明を、次に示します。

サーバーのライフサイクルの概要

Procedureライフサイクルモジュールを追加する

  1. 構成を選択します。

    構成のリストから構成を選択します。構成のリストを表示するには「構成」タブをクリックします。

  2. 「Java」>「ライフサイクルモジュール」タブをクリックします。

  3. 「新規」ボタンをクリックします。

    次の各パラメータの値を入力します。

    • 名前 — 新しいライフサイクルモジュールの有効な一意名を入力します。

    • 有効 — このライフサイクルモジュールを有効にするには、このオプションを使用します。

    • クラス名 — 完全修飾 Java クラス名。このクラスは、com.sun.appserv.server.LifecycleListener インタフェースを実装しているべきです。このインタフェースの詳細については、『Developer's Guide』を参照してください。

    • クラスパス — 省略可能です。リスナークラスへのクラスパスを指定できます。

    • 読み込み順序— 100 より大きい値。ライフサイクルイベントリスナーの読み込み順序。数の順番に従います。100 と等しいかそれより大きい読み込み順序を選択することをお勧めします。そうすれば、内部ライフサイクルモジュールとの衝突を回避できます。

    • 読み込み時の障害 — このオプションを有効にすると、サーバーがリスナークラスからスローされた例外を致命的な障害として扱わないため、通常の起動が引き続き行われます。デフォルトでは無効です。

    • 説明 — ライフサイクルモジュールについての簡単な説明を入力します。

    • プロパティー — プロパティーを使えば、Java ライフサイクルモジュールに引数を渡せます。新しいプロパティーを追加するには、「プロパティーを追加」ボタンをクリックし、名前、値、および説明のテキストを入力します。


    注意 – 注意 –

    サーバーライフサイクルリスナークラスはメインのサーバースレッドから同期的に呼び出されるため、リスナークラスがサーバーをブロックしないように、特別な注意を払う必要があります。リスナークラスは必要に応じてスレッドを作成できますが、それらのスレッドがシャットダウン/終了フェーズで停止されるようにする必要があります。


Procedureライフサイクルモジュールを削除する

  1. 構成を選択します。

    構成のリストから構成を選択します。構成のリストを表示するには「構成」タブをクリックします。

  2. 「Java」>「ライフサイクルモジュール」タブをクリックします。

  3. ライフサイクルモジュールを選択し、「ライフサイクルモジュールを削除」ボタンをクリックします。


    注 –

    CLI の使用

    次の例は、myLifecycleModule という名前の Java ライフサイクルモジュールを構成 test に対して作成する方法を示したものです。このモジュールはクラス com.MyLifecycleModule によって実装されています。


    wadm> create-lifecycle-module --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 
    --class=com.sun.webserver.tests.LifecycleClass LifecycleTest

    CLI リファレンスの create-lifecycle-module(1) を参照してください。

    Java ライフサイクルモジュールを一覧表示するには、次のコマンドを実行します。


    wadm> list-lifecycle-modules --config=test

    CLI リファレンスの list-lifecycle-modules(1) を参照してください。

    Java ライフサイクルモジュールにプロパティーを追加するには、次のコマンドを実行します。


    wadm> create-lifecycle-module-userprop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --module=LifecycleTest info=Testing

    CLI リファレンスの create-lifecycle-module-userprop(1) を参照してください。

    Java ライフサイクルモジュールのプロパティーを変更するには、次のコマンドを実行します。


    wadm> set-lifecycle-module-prop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --module=LifecycleTest 
    class-path=/space 

    CLI リファレンスの set-lifecycle-module-prop(1) を参照してください


Java リソースの構成

Web アプリケーションは、リソースマネージャー、データソース (SQL データソースなど)、メールセッション、URL 接続ファクトリなど、さまざまなリソースにアクセスする可能性があります。Java EE プラットフォームはそのようなリソースを、Java Naming and Directory Interface (JNDI) サービスを介してアプリケーションに公開します。

Sun Java System Web Server で作成および管理可能な Java EE リソースは、次のとおりです。

JDBC リソースの構成

JDBC データソースは、Sun Java System Web Server で作成および管理可能な Java EE リソースの 1 つです。

JDBC API は、リレーショナルデータベースシステムと接続するための API です。JDBC API は次の 2 つの部分から成ります。

JDBC データソースオブジェクトは、データソースを Java プログラミング言語で実装したものです。簡単に言えば、データソースとはデータを格納する機能のことです。それは、大企業向けの複雑なデータベースのように高度なものでもかまいませんし、行と列を含むファイルのように単純なものでもかまいません。JDBC データソースは、Sun Java System Web Server 経由で作成および管理可能な Java EE リソースの 1 つです。

JDBC API は標準 SQL データベースアクセスインタフェースを備えた Java 向けの一連のクラスを提供しますが、それらのクラスを使えば、広範なリレーショナルデータベースに統一的な方法で確実にアクセスできます。

JDBC を使えば、事実上すべてのデータベース管理システム (DBMS) に SQL 文を送信できます。これは、リレーショナル DBMS、オブジェクト DBMS のどちらのインタフェースとしても使用されます。

JDBC リソースの追加

CLI 経由で JDBC リソースを追加するには、次のコマンドを実行します。


wadm> create-jdbc-resource --user=admin --password-file=admin.pwd --host=serverhost
--port=8989 --config=config1 --datasource-class=oracle.jdbc.pool.OracleDataSource jdbc

CLI リファレンスの create-jdbc-resource(1) を参照してください。

この例の com.pointbase.jdbc.jdbcDataSource は、JDBC ドライバクラスを表しています。

サポートされている JDBC ドライバの一覧については、「Sun Java System Web Server でサポートされている JDBC ドライバ」を参照してください。

Sun Java System Web Server でサポートされている JDBC ドライバ

次の表に、一般的な JDBC ドライバと、新しい JDBC リソースの追加時に構成する必要のあるプロパティーの一覧を示します。「新しい JDBC リソースの追加」を参照してください。

表 11–2 サポートされている一般的な JDBC ドライバの一覧

ドライバ

クラス名

プロパティー

Oracle ドライバ

oracle.jdbc.pool.OracleDataSource

  • url

  • user

  • password

Oracle 用 SJS JDBC ドライバ

com.sun.sql.jdbcx.oracle.OracleDataSource

  • serverName

  • portNumber

  • user

  • password

  • SID

DB2 IBM ドライバ

com.ibm.db2.jdbc.DB2DataSource

  • serverName

  • databaseName

  • portNumber

  • user

  • password

  • driverType

DB2 用 SJS JDBC ドライバ

com.sun.sql.jdbcx.db2.DB2DataSource

  • databaseName

  • locationName

  • packageName

  • password

  • portNumber

  • serverName

  • user

MS SQLServer ドライバ

com.ddtek.jdbcx.sqlserver.SQLServerDataSource

  • databaseName

  • password

  • user

  • serverName

  • portNumber

MS 用 SJS JDBC ドライバ

com.sun.sql.jdbcx.sqlserver.SQLServerDataSource

  • databaseName

  • password

  • user

  • serverName

  • portNumber

Sybase ドライバ

com.sybase.jdbcx.SybDataSource

  • databaseName

  • password

  • portNumber

  • serverName

  • user

Sybase 用 SJS JDBC ドライバ

com.sun.sql.jdbcx.sybase.SybaseDataSource

  • databaseName

  • password

  • user

  • portNumber

  • serverName

MySQL MM ドライバ

org.gjt.mm.mysql.jdbc2.optional.MysqlDataSource

  • serverName

  • port

  • databaseName

  • user

  • password

Informix ドライバ

com.informix.jdbcx.IfxDataSource

  • portNumber

  • databaseName

  • IfxIFXHOST (Informix データベースが稼働しているコンピュータの IP アドレスまたはホスト名)

  • serverName

  • user

  • password

Informix 用 SJS JDBC ドライバ

com.sun.sql.jdbcx.informix.InformixDataSource

  • databaseName

  • informixServer (接続先の Informix データベースサーバーの名前)

  • password

  • portNumber

  • severName

PostgreSQL ドライバ

org.postgresql.ds.PGSimpleDataSource

  • serverName

  • databaseName

  • portNumber

  • user

  • password

Apache Derby ドライバ

org.apache.derby.jdbc.EmbeddedDataSource

  • databaseName

  • user

  • password

JDBC リソースの管理

Procedure新しい JDBC リソースの追加

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「Java」>「リソース」タブをクリックします。

  3. 「JDBC リソース」セクションの「新規」ボタンをクリックします。

  4. ドライバベンダーを選択します。

    JNDI 名として一意の値を指定し、選択可能なリストから JDBC ドライバベンダーを選択します。

  5. JDBC リソースのプロパティーを入力します。

    1 つ前の手順で選択した JDBC ドライバベンダーに基づいて、ドライバのクラス名と JDBC リソースプロパティーが自動的に設定されます。

  6. 確認します。

    概要を表示し、「完了」クリックして新しい JDBC リソースを作成します。

JDBC 接続プールの管理

JDBC 接続プールの設定

Sun Java System Web Server 7.0 で JDBC 接続プールを構成するには、jdbc-resource 要素を使用します。次の手順に従えば、もっとも簡単な接続プールを構成できます。この例の接続プールは Oracle JDBC ドライバを使用します。

ProcedureJDBC 接続プールを作成する

  1. wadm を起動します。

  2. JDBC リソースを作成します。

    基本的な構成の JDBC リソースを作成します。ほかの属性も利用可能であり、それらを使えば接続プールを細かく調整できます。ほかの属性や使用例については、マニュアルページを参照してください。


    wadm> create-jdbc-resource --config=test 
    --datasourceclass=oracle.jdbc.pool.OracleDataSource jdbc/MyPool
  3. ベンダー固有のプロパティーを構成します。

    ドライバのベンダー固有のプロパティーを構成するには、プロパティーを使用します。次の例では、プロパティー urluser、および password が、JDBC リソースに追加されています。


    wadm> add-jdbc-resource-userprop --config=test --jndi-name=jdbc/MyPool 
    url=jdbc:oracle:thin:@hostname:1521:MYSID user=myuser password=mypassword
  4. 接続検証を有効にします。

    プールでは接続検証を有効にすることができます。このオプションを使用すると、接続がアプリケーションに渡される前に、その接続が検証されます。これにより、ネットワークやデータベースサーバーに障害が発生してデータベースが利用できなくなった場合でも、Web サーバーが自動的にデータベース接続を再確立できます。接続の検証は追加オーバーヘッドとなるため、パフォーマンスに若干の影響が生じます。


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    connection-validation-table-name=test connection-validation=table
  5. デフォルトのプール設定を変更します。

    この例では、最大接続数を変更しています。


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    max-connections=100
  6. 構成を配備します。


    wadm> deploy-config test
  7. JDBC ドライバを含む JAR ファイルを提供します。

    ドライバを実装するクラスをサーバーに知らせる必要があります。これを実行する方法には次の 2 つがあります。

    • ドライバの JAR ファイルをサーバーインスタンスの lib ディレクトリ内にコピーします。これがもっとも簡単な方法です。なぜなら、インスタンスの lib ディレクトリに含まれる JAR ファイルは自動的にサーバーに読み込まれ、サーバーから利用可能になるからです。

    • JVM の class-path-suffix を変更して、JDBC ドライバの JAR ファイルが含まれるようにします。


      wadm> set-jvm-prop  --config=test class-path-suffix=/export/home/lib/classes12.jar
  8. Web アプリケーションでの使用方法。

    • WEB-INF/web.xml の変更。


      <web-app>
      ...
        <resource-ref>
          <description>JDBC Connection Pool</description>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
        </resource-ref>
      ...
      </web-app>
    • WEB-INF/sun-web.xml の変更。


      <sun-web-app>
      ...
        <resource-ref>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <jndi-name>jdbc/MyPool</jndi-name>
        </resource-ref>
      ...
      </sun-web-app>
    • 接続プールの使用。


      Context initContext = new InitialContext();
          Context webContext = (Context)context.lookup("java:/comp/env");
      
          DataSource ds = (DataSource) webContext.lookup("jdbc/myJdbc");
          Connection dbCon = ds.getConnection();

カスタムリソースの登録

次のタスクを実行すれば、カスタムリソースをインスタンスに登録できます。

Procedureカスタムリソースを追加する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「Java」>「リソース」タブをクリックします。

  3. 「カスタムリソース」セクションの「新規」ボタンをクリックします。

カスタムリソースのプロパティー

次の表では、カスタムリソースの作成時に利用可能なプロパティーについて説明します。

表 11–3 カスタムリソースのプロパティー

プロパティー

説明

JNDI 名

カスタムリソースの一意の JNDI 名を入力します。 

有効

実行時にこのカスタムリソースを有効にするかどうかを決定します。 

リソースタイプ

このリソースの完全修飾の型。 

ファクトリクラス

この型のリソースをインスタンス化するクラス。javax.naming.spi.ObjectFactory を実装する、ユーザーが記述したファクトリクラスの完全修飾名。

説明

カスタムリソースの簡単な説明を入力します。 

プロパティー

オプションで、「プロパティーを追加」ボタンをクリックして CLI プロパティーを入力します。 


注 –

CLI の使用

CLI 経由でカスタムリソースを作成するには、次のコマンドを実行します。


wadm> create-custom-resource --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 --res-type=samples.jndi.customResource.MyBean 
--factory-class=samples.jndi.customResource.MyCustomConnectionFactory custom

CLI リファレンスの create-custom-resource(1) を参照してください。


外部 JNDI リソースの操作

外部 JNDI リソースの作成

このオプションを使えば、外部 Java Naming and Directory Interface (JNDI) リソースを作成できます。外部 JNDI リポジトリに格納されたリソースにアクセスするには、JNDI リソースが必要になります。

Procedure外部 JNDI リソースを追加する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「Java」>「リソース」タブをクリックします。

  3. 「外部 JNDI リソース」セクションの「新規」ボタンをクリックします。

外部 JNDI リソースのプロパティー

次の表では、新しい外部 JNDI リソースの追加時に利用可能なプロパティーについて説明します。

表 11–4 外部 JNDI リソースのプロパティー

プロパティー

説明

JNDI 名

新しい外部 JNDI リソースの一意名を入力します。 

有効

実行時にこの外部 JNDI リソースを有効にするかどうかを決定します。 

外部 JNDI 名

外部 JNDI リソースの名前。 

リソースタイプ

このリソースの完全修飾の型。 

ファクトリクラス

この型のリソースをインスタンス化するクラス。 

説明

外部 JNDI リソースの簡単な説明を入力します。 

プロパティー

オプションで、「プロパティーを追加」ボタンをクリックして CLI プロパティーを入力します。 


注 –

CLI の使用

CLI 経由で外部 JNDI リソースを作成するには、次のコマンドを実行します。


wadm> create-external-jndi-resource --user=admin 
--password-file=admin.pwd --host=serverhost --port=8989 --config=config1 
--res-type=org.apache.naming.resources.Resource 
--factory-class=samples.jndi.externalResource.MyExternalConnectionFactory 
--jndilookupname=index.html external-jndi

CLI リファレンスの create-external-jndi-resource(1) を参照してください。


メールリソースの構成

JMS デスティネーションは、Sun Java System Web Server 経由で作成および管理可能な Java EE リソースです。

多くのインターネットアプリケーションで電子メール通知を送信する機能が必要となるため、Java EE プラットフォームには JavaMail API と JavaMail サービスプロバイダが含まれています。これにより、アプリケーションコンポーネントによるインターネットメールの送信が可能となります。

Procedureメールリソースを追加する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「Java」>「リソース」タブをクリックします。

  3. 「メールリソース」セクションの「新規」ボタンをクリックします。

メールリソースのプロパティー

次の表では、新しいメールリソースの追加時に利用可能なプロパティーについて説明します。

表 11–5 メールリソースのプロパティー

プロパティー

説明

JNDI 名

新しいメールリソースの一意名を入力します。 

有効

実行時にこのメールリソースを有効にするかどうかを決定します。 

ユーザー

メールサーバーに登録されている有効なユーザー名。 

送信元

サーバーがメール送信時に使用する電子メールアドレス。 

ホスト

メールサーバーのホスト名/IP アドレス。 

ストアプロトコル

メッセージの取得に使用するプロトコル。 

ストアプロトコルクラス

store-protocol の記憶領域サービスプロバイダの実装。store-protocol を実装するクラスの完全修飾クラス名。デフォルトのクラスは、com.sun.mail.imap.IMAPStore です。

転送プロトコル

メッセージの送信に使用するプロトコル。 

転送プロトコルクラス

transport-protocol のトランスポートサービスプロバイダの実装。transport-protocol を実装するクラスの完全修飾クラス名。デフォルトのクラスは、com.sun.mail.smtp.SMTPTransport です。


注 –

CLI の使用

メールリソースを作成するには、次のコマンドを実行します。


wadm> create-mail-resource --config=test --server-host=localhost 
--mail-user=nobody --from=xyz@foo.com mail/Session

CLI リファレンスの create-mail-resource(1) を参照してください。


SOAP 認証プロバイダの構成

Java Authentication Service Provider Interface for Containers 仕様は、認証メカニズムプロバイダをコンテナに統合できるようにするための標準サービスプロバイダインタフェースを定義します。管理コンソールを使えば、新しい SOAP 認証プロバイダを追加できます。

ProcedureSOAP 認証プロバイダを追加する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「Java」>「認証」タブをクリックします。

  3. 「SOAP 認証プロバイダ」セクションの「新規」ボタンをクリックします。

SOAP 認証プロバイダのパラメータ

次の表では、「新規 SOAP 認証プロバイダ」ページで利用可能なパラメータについて説明します。

表 11–6 SOAP 認証プロバイダのパラメータ

パラメータ

説明

名前

新しい SOAP 認証プロバイダの簡易名を入力します。 

クラス名

プロバイダを実装するクラス名。javax.security.auth.XXX を実装するクラスの完全修飾クラス名

要求認証の送信元

この属性は、ユーザー名/パスワードなどのメッセージ層送信側認証、要求メッセージに適用すべきデジタル署名などのコンテンツ認証、のいずれかの要件を定義します。値 (auth-policy) は「送信側」、「コンテンツ」のいずれかです。この引数が指定されない場合、要求のソース認証は必須ではありません。 

要求認証の受信先

この属性は、XML 暗号化などによる、送信側に対するメッセージ受信側のメッセージ層認証の要件を定義します。値は「コンテンツの前」「コンテンツのあと」のいずれかです。 

応答認証の送信元

この属性は、ユーザー名/パスワードなどのメッセージ層送信側認証、応答メッセージに適用すべきデジタル署名などのコンテンツ認証、のいずれかの要件を定義します。値 (auth-policy) は「送信側」、「コンテンツ」のいずれかです。この引数が指定されない場合、応答のソース認証は必須ではありません 

応答認証の受取先

この属性は、XML 暗号化などによる、送信側に対する応答メッセージ受信側のメッセージ層認証の要件を定義します。 

プロパティー

「プロパティーを追加」ボタンをクリックしてその他の CLI プロパティーを入力します。 


注 –

CLI の使用

CLI を使って SOAP 認証プロバイダを追加するには、次のコマンドを実行します。


wadm> create-soap-auth-provider --user=admin --password-file=admin.pwd 
--host=serverhost --port=8989 --config=config1 
--class-name=javax.security.auth.soapauthprovider soap-auth

CLI リファレンスの create-soap-auth-provider(1) を参照してください。


セッションレプリケーションの構成

Sun Java System Web Server 7.0 は、Web アプリケーションに高可用性を提供するセッションレプリケーションをサポートしています。セッションレプリケーションは、あるインスタンスから同じクラスタ内の別のサーバーインスタンスに HTTP セッションをレプリケートすることで、これを実現します。したがって、どの HTTP セッションもリモートインスタンス上にバックアップコピーを持ちます。クラスタ内のあるインスタンスが利用不能になるような障害が発生した場合でも、クラスタはセッションの継続性を維持します。

Sun Java System Web Server 7.0Sun Java System Web Server 7.0

上図は、逆プロキシが設定された状態で 4 つのノード間でセッションレプリケーションが行われるという、典型的なシナリオを示したものです。Web Server C がオフラインになると、Web Server B から Web Server D にセッションデータがレプリケートされます。

セッションレプリケーションの設定

この節では、選択された構成のセッションレプリケーションのプロパティーを設定する手順について説明します。

Procedureセッションレプリケーションを設定する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「Java」>「セッションレプリケーション」をクリックします。

セッションレプリケーションのパラメータの変更

次の表では、セッションレプリケーションのページで利用可能なパラメータについて説明します。

表 11–7 セッションレプリケーションのパラメータ

パラメータ

説明

ポート

管理サーバーが待機するポート番号。デフォルトのポート番号は、8888 です。 

有効

選択された構成のセッションレプリケーションを有効にします。 

暗号化

レプリケーションの前にセッションデータを暗号化するかどうか。デフォルト値は false です。 

暗号化方式

クラスタメンバーがセッションデータのレプリケートに使用する暗号化方式群 (アルゴリズム、モード、パディング)。 

Getatrribute でレプリケーションをトリガー

HttpSession.getAttribute メソッドの呼び出し時にセッションをバックアップすべきかどうか。デフォルト値は true です。

レプリカ検出の最大数

セッションのバックアップの検索を試みる間接続する必要があるインスタンスの最大数。値の範囲は 1 から 2147.0483647.0 までです。ただし、制限なしの場合は -1 を使用します。 

起動時検出のタイムアウト

インスタンスが指定されたバックアップインスタンスへの接続を試みる最大時間 (秒)。値の範囲は 0.001 から 3600 までです。 

Cookie 名

セッションを所有するインスタンスを追跡する Cookie の名前を入力します。 

認証レルムの管理

Java EE ベースのセキュリティーモデルは、ユーザーを識別および認証するセキュリティーレルムをサポートします。

認証プロセスは、Java レルムによってユーザーを確認します。レルムは、ユーザーのセット、オプションのグループマッピング、および認証要求を検証できる認証ロジックで構成されます。構成されたレルムと確立されたセキュリティーコンテキストによって認証要求が検証されたあと、このアイデンティティーが以降のすべての認証決定に適用されます。


注 –

Java レルムは auth-db (認証データベース) に似ていますが、auth-db が ACL エンジンによって (ACL ファイル内の規則に基づいて) 使用されるのに対し、Java レルムは (各 Web アプリケーションの web.xml ファイル内に指定された) Java サーブレットアクセス制御規則によって使用される、という点が異なります。


サーバーインスタンスは任意の数の構成済みレルムを持つことができます。構成情報は、server.xml ファイルの auth-realm 要素内に存在します。

次の表では、Sun Java System Web Server 7.0 でサポートされているさまざまなタイプのレルムを定義します

表 11–8 レルムのタイプ

レルム

説明

ファイル

file レルムは、Sun Java System Web Server を初めてインストールしたときのデフォルトのレルムです。このレルムは設定が簡単かつ単純であり、開発者に多大な利便性を提供します。

file レルムは、テキストファイルに格納されたユーザーデータに基づいて、ユーザーを認証します。Java レルムは auth-db (認証データベース) に似ていますが、auth-db が ACL エンジンによって (ACL ファイル内の規則に基づいて) 使用されるのに対し、Java レルムは (各 Web アプリケーションの web.xml 内に指定された) Java サーブレットアクセス制御規則によって使用される、という点が異なります。

LDAP

ldap レルムを使えば、LDAP データベースをユーザーのセキュリティー情報用として使用できます。LDAP ディレクトリサービスは、一意の識別子を持つ属性のコレクションです。ldap レルムは、本稼働システムへの配備に最適です。

ldap レルムに基づいてユーザーを認証するには、1 人以上の必要なユーザーを LDAP ディレクトリに作成する必要があります。これは、管理サーバーの「ユーザー」および「グループ」タブから行えます。このアクションは、LDAP ディレクトリ製品のユーザー管理コンソールからも行えます。

PAM

PAM レルム (Solaris レルムとも呼ばれる) は、Solaris PAM スタックに認証を委任します。このレルムは PAM auth-db の場合と同じく Solaris 9 と 10 でしかサポートされておらず、また、サーバーインスタンスを root で実行する必要があります。 

証明書

certificate レルムは、SSL 認証をサポートしています。証明書レルムは、Sun Java System Web Server のセキュリティーコンテキスト内にユーザーのアイデンティティーを設定し、クライアント証明書に含まれるユーザーデータをそのアイデンティティーに設定します。その後、Java EE コンテナが、証明書に含まれる各ユーザーの DN に基づいて承認処理を行います。このレルムは、X.509 証明書による SSL または TLS クライアント認証を使って、ユーザーの認証を行います。

ネイティブ

native レルムは、ACL ベースのコア認証モデルと Java EE/サーブレット認証モデルを連結する役割を果たす、特殊なレルムです。Java Web アプリケーションでネイティブレルムを使用すれば、Java Web コンテナに認証を実行させる代わりに ACL サブシステムに認証を実行させながらも、Java Web アプリケーションからそのアイデンティティーを利用できるようにする、といったことが可能になります。

認証処理が呼び出されると、ネイティブレルムはその認証をコア認証サブシステムに委任します。これは、ユーザーの立場から見れば、LDAP レルムが構成済み LDAP サーバーに認証を委任するのと、本質的には同じことです。グループメンバーシップクエリーがネイティブレルムによって処理される場合、その処理もコア認証サブシステムに委任されます。Java Web モジュールや開発者の立場から見れば、ネイティブレルムは、Web モジュールで利用可能なほかの Java レルムと何の違いもありません。 

カスタム

ユーザー固有の要求に対応するため、プラグイン可能な JAAS ログインモジュールとレルム実装を使用することで、Oracle など、その他のデータベース用のレルムを構築することができます。 

次の節では、新しい認証レルムを追加する場合の手順について説明します。

Procedure認証レルムを追加する

  1. 構成を選択します。

    新しい認証レルムを追加する必要のある構成を選択します。「構成」タブをクリックし、構成を選択します。

  2. 「Java」>「認証」タブをクリックします。

  3. 「新規」ボタンをクリックします。

  4. レルムの詳細を入力します。

    • 名前 — レルムの簡易名を入力します。この名前は、web.xml などからこのレルムを参照する場合に使用されます。

    • クラス — カスタムレルムを構成する場合に、そのカスタムレルムを実装する完全な Java クラス名を入力します。組み込みレルムの場合、クラスを入力する必要はありません。

    • タイプ — レルムのタイプを選択します。Java レルムのタイプについて説明した前の節を参照してください。

    • プロパティー — レルム固有のプロパティーを追加します。例: property name="file" value="instance_dir/config/keyfile" and property name="jaas-context" value="fileRealm


    注 –

    CLI の使用

    CLI 経由で認証レルムを追加するには、次のコマンドを実行します。


    wadm> create-auth-realm --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1 basic

    CLI リファレンスの create-auth-realm(1) を参照してください。

    組み込み認証レルムのタイプ名を指定します。タイプは fileldappamnativecertificate のいずれかです。