Sun Java System Web Server 7.0 管理ガイド

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) を参照してください。