Web アプリケーションは、リソースマネージャー、データソース (SQL データソースなど)、メールセッション、URL 接続ファクトリなど、さまざまなリソースにアクセスする可能性があります。Java EE プラットフォームはそのようなリソースを、Java Naming and Directory Interface (JNDI) サービスを介してアプリケーションに公開します。
Sun Java System Web Server で作成および管理可能な Java EE リソースは、次のとおりです。
JDBC データソース
JDBC 接続プール
Java メールセッション。
カスタムリソース。
外部 JNDI リソース。
JDBC データソースは、Sun Java System Web Server で作成および管理可能な Java EE リソースの 1 つです。
JDBC API は、リレーショナルデータベースシステムと接続するための API です。JDBC API は次の 2 つの部分から成ります。
アプリケーションコンポーネントがデータベースへのアクセスに使用する、アプリケーションレベルのインタフェース。
JDBC ドライバを Java EE プラットフォームに接続するためのサービスプロバイダインタフェース。
JDBC データソースオブジェクトは、データソースを Java プログラミング言語で実装したものです。簡単に言えば、データソースとはデータを格納する機能のことです。それは、大企業向けの複雑なデータベースのように高度なものでもかまいませんし、行と列を含むファイルのように単純なものでもかまいません。JDBC データソースは、Sun Java System Web Server 経由で作成および管理可能な Java EE リソースの 1 つです。
JDBC API は標準 SQL データベースアクセスインタフェースを備えた Java 向けの一連のクラスを提供しますが、それらのクラスを使えば、広範なリレーショナルデータベースに統一的な方法で確実にアクセスできます。
JDBC を使えば、事実上すべてのデータベース管理システム (DBMS) に SQL 文を送信できます。これは、リレーショナル DBMS、オブジェクト DBMS のどちらのインタフェースとしても使用されます。
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 ドライバ」を参照してください。
次の表に、一般的な JDBC ドライバと、新しい JDBC リソースの追加時に構成する必要のあるプロパティーの一覧を示します。「新しい JDBC リソースの追加」を参照してください。
表 11–2 一般的な JDBC ドライバの一覧
前掲のリスト内の Sun Java System JDBC ドライバはすべて、Web Server に付属しています。その他のドライバについては、ドライバベンダーのマニュアルで、これらのドライバおよびクラス名の最新バージョンを確認してください。前掲のリストに記載されている情報は、最新のドライバ情報ではない可能性があります。
構成を選択します。
構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。
「Java」>「リソース」タブをクリックします。
「JDBC リソース」セクションの「新規」ボタンをクリックします。
ドライバベンダーを選択します。
JNDI 名として一意の値を指定し、選択可能なリストから JDBC ドライバベンダーを選択します。
JDBC リソースのプロパティーを入力します。
1 つ前の手順で選択した JDBC ドライバベンダーに基づいて、ドライバのクラス名と JDBC リソースプロパティーが自動的に設定されます。
確認します。
概要を表示し、「完了」クリックして新しい JDBC リソースを作成します。
Web Server 7.0 で JDBC 接続プールを構成するには、jdbc-resource 要素を使用します。次の手順に従えば、もっとも簡単な接続プールを構成できます。この例の接続プールは Oracle JDBC ドライバを使用します。
wadm を起動します。
JDBC リソースを作成します。
基本的な構成の JDBC リソースを作成します。ほかの属性も利用可能であり、それらを使えば接続プールを細かく調整できます。ほかの属性や使用例については、マニュアルページを参照してください。
wadm> create-jdbc-resource --config=test --datasourceclass=oracle.jdbc.pool.OracleDataSource jdbc/MyPool |
ベンダー固有のプロパティーを構成します。
ドライバのベンダー固有のプロパティーを構成するには、プロパティーを使用します。次の例では、プロパティー url、user、および password が、JDBC リソースに追加されています。
wadm> add-jdbc-resource-userprop --config=test --jndi-name=jdbc/MyPool url=jdbc:oracle:thin:@hostname:1521:MYSID user=myuser password=mypassword |
接続検証を有効にします。
プールでは接続検証を有効にすることができます。このオプションを使用すると、接続がアプリケーションに渡される前に、その接続が検証されます。これにより、ネットワークやデータベースサーバーに障害が発生してデータベースが利用できなくなった場合でも、Web サーバーが自動的にデータベース接続を再確立できます。接続の検証は追加オーバーヘッドとなるため、パフォーマンスに若干の影響が生じます。
wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool connection-validation-table-name=test connection-validation=table |
デフォルトのプール設定を変更します。
この例では、最大接続数を変更しています。
wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool max-connections=100 |
構成を配備します。
wadm> deploy-config test |
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 |
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(); |
次のタスクを実行すれば、カスタムリソースをインスタンスに登録できます。
構成を選択します。
構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。
「Java」>「リソース」タブをクリックします。
「カスタムリソース」セクションの「新規」ボタンをクリックします。
次の表では、カスタムリソースの作成時に利用可能なプロパティーについて説明します。
表 11–3 カスタムリソースのプロパティー
プロパティー |
説明 |
---|---|
JNDI 名 |
カスタムリソースの一意の JNDI 名を入力します。 |
有効 |
実行時にこのカスタムリソースを有効にするかどうかを決定します。 |
リソースタイプ |
このリソースの完全修飾の型。 |
ファクトリクラス |
この型のリソースをインスタンス化するクラス。javax.naming.spi.ObjectFactory を実装する、ユーザーが記述したファクトリクラスの完全修飾名。 |
説明 |
外部 JNDI リソースの簡単な説明を入力します。 |
プロパティー |
オプションで、「プロパティーを追加」ボタンをクリックして 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) を参照してください。
このオプションを使えば、外部 Java Naming and Directory Interface (JNDI) リソースを作成できます。外部の JNDI リポジトリに格納されたリソースにアクセスするには、NDI リソースが必要です。
構成を選択します。
構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。
「Java」>「リソース」タブをクリックします。
「外部 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 サービスプロバイダが含まれています。これにより、アプリケーションコンポーネントによるインターネットメールの送信が可能となります。
構成を選択します。
構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。
「Java」>「リソース」タブをクリックします。
「メールリソース」セクションの「新規」ボタンをクリックします。
次の表では、新しいメールリソースの追加時に利用可能なプロパティーについて説明します。
表 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) を参照してください。