![]() |
Sun ONE Application Server 7 J2EE CA Service Provider Implementation 管理者ガイド |
コネクタのアセンブルと配備このmoduleでは、Sun ONE Application Server コネクタモジュールの内容と、このモジュールをアプリケーション内に個別にまたは一括してアセンブルする方法について説明します。
Sun ONE Application Server コネクタのモジュールには、J2EE 標準の要素と Sun ONE Application Server 固有の要素が組み込まれています。このmoduleでは、Sun ONE Application Server 固有の要素についてのみ詳細に説明します。
この章では、次のトピックについて説明します。
アセンブリと配備の概要
アプリケーションアセンブリ (パッケージ化とも呼ばれる) は、アプリケーションの個別のコンポーネントを、J2EE に準拠するアプリケーションサーバーに配備できる単位に結合するプロセスです。パッケージは、モジュールまたは独立したアプリケーションとして利用できます。この節には次のトピックがあります。
モジュール
J2EE モジュールは、1 つまたは複数の J2EE コンポーネントの集まりで、各コンポーネントは同一コンテナタイプの 2 つの配備記述子を持っています。一方の配備記述子は J2EE 標準で、もう一方の記述子は Sun ONE Application Server 固有のものです。コネクタモジュールは次のとおりです。
- リソース RAR ファイル : J2EE CA コネクタにだけ適用される RAR ファイルです。各 Sun ONE Application Server コネクタには、sun-ra.xml ファイルと、J2EE アプリケーション配備記述子の ra.xml ファイルがあります。
モジュールを配備した後にクラスローダーが正しいクラスを検索できるように、すべてのモジュールのソースコードでパッケージ定義を使う必要があります。
配備記述子内の情報は宣言型であるため、ソースコードを変更しなくても変更できます。J2EE サーバーは、実行時に読み込んだ配備記述子内の情報に従って動作します。
コネクタモジュールには、Sun ONE Application Server 配備記述子と J2EE 配備記述子があります。Sun ONE Application Server 管理インタフェースは、配備記述子を使って、アプリケーションコンポーネントを配備し、Sun ONE Application Server にリソースを登録します。
アプリケーションは、1 つ以上のモジュール、Sun ONE Application Server 配備記述子、および J2EE アプリケーション配備記述子で構成されます。これらのすべてのモジュールが、Java ARchive (.jar) ファイル形式で、拡張子 .ear を持つ 1 つのファイルにアセンブルされます。
J2EE 標準記述子
J2EE プラットフォームでは、アセンブリおよび配備機能が提供されます。これらの機能では、コンポーネントおよびアプリケーションの標準パッケージとして JAR ファイルが使われ、パラメータのカスタマイズには XML ベースの配備記述子が使われます。
J2EE 標準配備記述子については、J2EE 仕様書のバージョン 1.3 に規定されています。J2EE 標準配備記述子の詳細は、次の仕様書を参照してください。
- 『Java 2 Enterprise Edition, J2EE Connector Architecture Specification v1.0』の第 10 「Packaging and Deployment」
仕様書は、次の URL に掲載されています。
Sun ONE Application Server 記述子
Sun ONE Application Server では、Sun ONE Application Server 固有の機能を設定するために追加の配備記述子を使用します。
注 Sun ONE Application Server 配備記述子は、UNIX システム上で 600 のアクセス権限を持っている必要があります。
すべての Sun ONE Application Server 配備記述子用の DTD スキーマファイルは、install_dir/lib/dtds ディレクトリにあります。
命名規則
配備されたコネクタの RAR モジュール名は、Sun ONE Application Server 内で一意である必要があります。モジュールのファイル名には、Java パッケージ方式の命名規則の使用をお勧めします。Java パッケージ方式の命名規則を使えば、名前の衝突は発生しません。この命名規則は、Sun ONE Application Server だけでなく、ほかの J2EE アプリケーションサーバーでも使うことをお勧めします。
実行時環境
コンポーネントの配備をスタンドアロンモジュールまたはアプリケーションのどちらとして行っても、配備はファイルシステムおよびサーバーの設定の両方に影響します。詳細は、『Sun ONE Application Server 開発者ガイド (J2EE CA SPI)』を参照してください。
クラスローダー
Java 仮想マシン (JVM) のクラスローダーは、依存関係の解決に必要な Java クラスファイルを動的に読み込みます。たとえば、java.util.Enumeration のインスタンスを作成する場合は、クラスローダーの 1 つが関連するクラスを実行時環境に読み込みます。詳細は、『Sun ONE Application Server 開発者ガイド (J2EE CA SPI)』を参照してください。
サンプルアプリケーション
Sun ONE Application Server には、参照したり配備したりできるサンプルアプリケーションがあり、install_dir/samples/j2ee ディレクトリに含まれています。各サンプルには専用のドキュメントが用意されています。
指定したパラメータと一致するコンポーネントファイルを選択します。fileset がサブ要素として含まれている場合、fileset の各ファイルに対して、含んでいる要素の name および contextroot 属性にデフォルト値を使う必要があります。詳細は、次のサイトを参照してください。
http://jakarta.apache.org/ant/manual/CoreTypes/fileset.html
J2EE CA リソースアダプタのアセンブル
この節では、J2EE CA リソースアダプタのアセンブルについて簡単に説明します。
コネクタをアプリケーションサーバーに配備するために次の 2 つの XML コネクタファイルが必要です。
- sun-ra.xml
- ra.xml
ra.xml ファイルは J2EE CA 仕様に基づいており、コネクタにパッケージ化されています。sun-ra.xml ファイルは Sun ONE Application Server 固有の情報を含んでいます。
コネクタ RAR モジュールをアセンブルするには
- 作業ディレクトリを作成し、モジュールの内容をコピーします。
- sun-ra.xml および ra.xml という名前の 2 つの配備記述子を META_INF ディレクトリに作成します。
- 次のコマンドを実行して、RAR ファイルを作成します。
jar -cvf module_name.rar *
モジュールとアプリケーションの配備
この節では、J2EE のコネクタモジュールを Sun ONE Application Server に配備する方法について説明します。
配備 ID とエラー
アプリケーションまたはモジュールを配備するとき、一意の ID が server.xml ファイルに作成されます。この ID は変更しないでください。配備中、サーバーでは ID の衝突を検出し、一意でない ID を持つアプリケーションやモジュールは読み込まれません。この衝突が起こったときには、衝突のメッセージがサーバーログに記録されます。
配備中にエラーが発生すると、アプリケーションやモジュールは配備されません。アプリケーション内のモジュールにエラーがある場合、そのアプリケーション全体が配備されません。
server.xml の詳細は、『Sun ONE Application Server 管理者用設定ファイルリファレンス』を参照してください。
配備のライフサイクル
アプリケーションははじめに配備されて、修正および再読み込み、再配備、無効化、再有効化され、最後に配備取り消しされてサーバーから削除されます。この節では、配備のライフサイクルに関連する次のトピックについて説明します。
動的配備
サーバーを再起動せずにアプリケーションまたはモジュールを配備、再配備、および配備解除することができます。これを動的配備と呼びます。
アプリケーションまたはモジュールを再配備するときに、一部のファイルシステムの内容と Application Server の設定が上書きまたは削除されないことがあります。この場合、再配備した後でも古い設定が残ることがあります。クリーンな環境に再配備するには、アプリケーションまたはモジュールを再配備する前に配備取り消しします。また、再配備を行うと、再配備中に実行されていたセッションが無効になります。クライアントはセッションを実行し直す必要があります。
リソースアダプタの無効化
配備されたリソースアダプタをサーバーから削除しないで無効にすることができます。各アプリケーションまたはモジュールの server.xml ファイルには enabled 属性があり、対応するオプションが管理インタフェースにあります。これらのオプションは変更可能です。server.xml の詳細は、『Sun ONE Application Server 管理者用設定ファイルリファレンス』を参照してください。
動的再読み込み
動的再読み込みを有効にすると、コードを変更したときにアプリケーションまたはモジュールを再配備する必要がありません。必要となるのは、変更したクラスファイルをアプリケーションまたはモジュールの配備ディレクトリにコピーすることだけです。サーバーは、定期的に変更を確認して、アプリケーションを変更に合わせて自動的かつ動的に再配備します。
この機能は、変更したコードをすぐにテストできるため、開発環境で役に立ちます。動的再読み込みは、パフォーマンスが低下することがあるので本稼動環境にはお勧めしません。また、再読み込みを行うと、再読み込み中に実行されていたセッションが無効になります。クライアントはセッションを実行し直す必要があります。
アプリケーションの配備記述子ファイルは、自動的には再読み込みされません。配備記述子ファイルを変更した場合、アプリケーションを再配備する必要があります。
動的再読み込みを有効にするには、次のいずれかを行います。
- 管理ツールインタフェースを使用する :
サーバーインスタンスの下にある「アプリケーション」コンポーネントを開きます。
「再読み込みを有効」ボックスをオンにして動的再読み込みを有効にします。
「再読込のポーリング間隔」フィールドに秒数を入力して、アプリケーションとモジュールにコードの変更がないか確認して動的に再読み込みする間隔を設定します。
「保存」ボタンをクリックします。
- server.xml ファイルの applications 要素の次の属性を編集する :
dynamic-reload-enabled="true" に設定して、動的再読み込みを有効にします。
dynamic-reload-poll-interval-in-seconds で、アプリケーションとモジュールにコードの変更がないか確認して動的に再読み込みする間隔を設定します。
server.xml の詳細は、『Sun ONE Application Server 管理者用設定ファイルリファレンス』を参照してください。
さらに、新しいサーブレットファイルの読み込み、変更に関連する EJB の再読み込み、または配備記述子の変更の再読み込みを行うには、次の操作を行う必要があります。
- 配備されたアプリケーションのルートに .reload という名前の空のファイルを作成します。
instance_dir/applications/j2ee-apps/app_name/.reload
または個別に配備されたモジュールに作成します。
instance_dir/applications/j2ee-modules/module_name/.reload
- 上記の変更を行うたびに、.reload ファイルのタイムスタンプ (UNIX では touch.reload) を明示的に更新します。
JSP では、sun-web.xml ファイルのjsp-config 要素にある reload-interval プロパティで設定した頻度で、変更が自動的に再読み込みされます。JSP の動的再読み込みを無効にするには、reload-interval="-1" に設定します。
J2EE CA リソースアダプタの配備
コネクタモジュールを配備するには、次のツールを使います。
asadmin の deploy コマンド
asadmin の deploy コマンドは、RAR ファイルを配備します。スタンドアロンのコネクタモジュールを配備するには、--type connector を指定します。RAR スタンドアロンモジュールを配備するには、次のコマンドを使います。
asadmin deploy -- connector--instance inst1 -name connector_name rar filename
コネクタモジュールを配備取り消しするには、次のコマンドを使います。
asadmin undeploy -- connector--instance inst1 -name connector_name
管理インタフェース
管理インタフェースを使ってコネクタモジュールを配備することもできます。
コネクタモジュールを配備するには
- サーバードメインの下にある「アプリケーション」コンポーネントを開きます。
- 「コネクタモジュール」ページに移動します。
- 「配備」ボタンをクリックします。
- 次の情報を入力します。
ファイルパス - コネクタモジュールの .rar ファイルへのファイルパス
- 「了解」をクリックします。
- コネクタ名を入力します。「了解」をクリックします。
共有フレームワークへのアクセス
J2EE のアプリケーションとモジュールで共有フレームワーククラス (コンポーネント、ライブラリなど) を使用する場合、それらのクラスはアプリケーションやモジュールではなくシステムクラスローダーまたは共有クラスローダーのパスに置くことがきます。サイズが大きい共有ライブラリを、そのライブラリを使用するすべてのモジュールにアセンブルする場合、サーバーへの登録に多くの時間がかかります。また、同一クラスの複数のインスタンスが独自のクラスローダーを使用すると、リソースの浪費になります。
システムクラスローダーについては、「クラスローダー」を参照してください。
セキュリティ管理
コネクタは、J2EE セキュリティスキーマ全体に統合されます。ただし、通常 EIS には独自のセキュリティシステムがあるので、J2EE セキュリティ主体を EIS 主体にマップする機能が必要です。J2EE SPI は次の 2 つのメカニズムをサポートしています。
- 主体マッピング
- 設定識別
主体マッピング
主体マッピングは、J2EE 主体と EIS 主体間のマッピングを設定します。このマッピングは、sun-ra.xml に含まれています。詳細とサンプルについては、「sun-ra.xml ファイルの要素」を参照してください。
設定識別
設定識別メカニズムを使うと、1 つのユーザー ID ですべての J2EE 主体のバックエンドにログインできるように設定して使うことができます。
J2EE CA は、現在パスワード認証をサポートしています。
コネクタ配備記述子ファイル
Sun ONE Application Server コネクタには次の 2 つの配備記述子ファイルがあります。
- J2EE 標準ファイル (ra.xml)。『Java 2 Enterprise Edition, J2EE Connector Architecture Specification v1.0』の第 10 章「Packaging and Deployment」で説明します。
- Sun ONE Application Server 固有のファイル (sun-ra.xml)。この節で説明します。
この節では次のトピックについて説明します。
- sun-connector_1_0-0.dtd
- sun-ra.xml ファイルの要素
- サンプルアプリケーション XML ファイル
sun-connector_1_0-0.dtd
sun-connector_1_0-0.dtd ファイルには、sun-ra.xml ファイルに含めることのできるさまざまな要素と、その要素に含めることができるサブ要素や属性が定義されています。sun-connector_1_0-0.dtd ファイルは、install_dir/lib/dtds ディレクトリにあります。
注 sun-connector_1_0-0.dtd ファイルは編集しないでください。このファイルの内容は、Sun ONE Application Server のバージョンの改訂にともなって変更されます。
注 sun-connector_1_0-0.dtd インタフェースは、変更される可能性があります。このような試験的または一時的なインタフェースは、次のリリースで互換性が変わったり、削除されたり、または変更の可能性の少ないインタフェースに置き換えられたりする場合があります。
DTD ファイルおよび XML の全般的な情報については、次のサイトにある XML 仕様書を参照してください。
DTD ファイル (およびスキーマを指定するための XML ファイル) の各要素には、次のものを含めることができます。
サブ要素
要素にはサブ要素を含めることができます。たとえば、次のコードは sun-connector 要素を定義しています。
<!ELEMENT sun-connector (resource-adapter, role-map?)>
ELEMENT 行では、sun-connector 要素に (resource-adapter, role-map?) サブ要素を含めることができると明示しています。
次の表では、サブ要素の終了文字によって決定されるサブ要素の必要指定数について説明しています。左側の列にはサブ要素の終了文字、右側の列には対応する必要指定数を示しています。
   サブ要素の必要指定数
サブ要素の終了文字
必要指定数
*
このサブ要素を含まないか、1 個以上含めることができる
?
このサブ要素を含まないか、1 個含めることができる
+
このサブ要素を 1 個以上含まなければならない
なし
このサブ要素を 1 個だけ含まなければならない
要素にほかの要素を含めることができない場合は、カッコで囲まれた要素名のリストの代わりに、EMPTY または (#PCDATA) が表示されます。
データ
要素の中には、サブ要素の代わりにデータを含むものもあります。これらの要素は、次の形式で定義されます。
<!ELEMENT element-name (#PCDATA)>
次に例を示します。
<!ELEMENT description (#PCDATA)>
sun-ra.xml ファイルでは、空白はデータ要素内のデータの一部として扱われます。そのため、データ要素で区切られたデータの前後には余分な空白がないようにする必要があります。次に例を示します。
<principal user-name="keren"></principal>
次の表記規則は、特に明示されている場合を除き、すべての J2EE 配備記述子要素に適用されます。
PCDATA を含む要素では、データの前後にある空白は無視されます。
値が「列挙型」の要素では、値の大文字と小文字が区別されます。
同じ JAR ファイル内のファイルへのパス名を指定する要素では、先頭が「/」で始まらない相対ファイル名は JAR ファイルの名前空間のルートに対して相対であるとみなされます。先頭が「/」で始まる絶対ファイル名も JAR ファイルの名前空間のルートで名前を指定します。通常は、相対名をお勧めします。例外として、 .war ファイルについては、サーブレット API との整合性のために絶対名をお勧めします。
属性
ATTLIST 行を持つ要素には属性が含まれています。
sun-ra.xml ファイルの要素
この節では、sun-connector_1_0-0.dtd と sun-ra.xml ファイルにおける次の XML 要素について説明します。
- sun-connector
- resource-adapter
- role-map
- map-element
- principal
- backend-principal
- description
- property
sun-connector
Sun ONE Application Server 固有の sun-connector 要素を定義します。リソースアダプタの配備記述子のルート要素で、sun-ra.xml ファイルに sun-connector 要素は 1 つしか指定できません。
サブ要素
次の表は、sun-connector 要素のサブ要素を説明しています。左側の列にはサブ要素名、中央の列には必要指定数、右側の列には要素の説明を示しています。
   sun-connector サブ要素
要素
必要指定数
説明
resource-adapter
jndi-name およびプール設定属性で構成される
role-map
セキュリティマッピング情報を含む
注 JNDI のその他の企業リソースとの名前の衝突や移植の際の問題を回避するため、Sun ONE Application Server のアプリケーションの名前は、すべて文字列 java: comp/env で始めてください。
resource-adapter
プールサイズおよび JNDI - lookup 名を定義します。
属性
次の表は、resource-adapter 要素の属性を説明しています。左側の列には属性名があり、中央の列はデフォルト値を示し、右側の列ではその属性を説明します。
注 ここで記述される jndi-name は、このコネクタを使用するすべてのアプリケーションで jndi 検索名として使用されます。jndi 名は一意である必要があります。たとえば、jndi-name の comet は、jndi 名前空間検索で java: comp/env/eis/comet として参照されます。
サブ要素
次の表は、resource-adapter 要素のサブ要素を説明しています。左側の列にはサブ要素名、中央の列には必要指定数、右側の列には要素の説明を示しています。
   resource-adapter サブ要素
要素
必要指定数
説明
description
リソースアダプタを説明します。
property
プロパティを名前と値のペアで提示するための構文を定義します。
description
リソースアダプタを説明します。
サブ要素
なし
property
プロパティを名前と値のペアで提示するための構文を定義します。
サブ要素
なし
属性
次の表は、property 要素の属性を説明しています。左側の列には属性名があり、中央の列はデフォルト値を示し、右側の列ではその属性を説明します。
   property 属性
属性
デフォルト値
説明
name
プロパティの名前
value
プロパティの値を含む
role-map
サーブレット/EJB 認証中に受信した主体から EIS の承認した証明書へのマッピングを定義します。このマッピングはオプションです。マップはいくつかの 2 つのタプルからなっています。
サブ要素
次の表は、role-map 要素のサブ要素を説明しています。左側の列にはサブ要素名、中央の列には必要指定数、右側の列には要素の説明を示しています。
   role map サブ要素
要素
デフォルト値
説明
description
マップ先となるバックエンドを記述
map-element
主体からバックエンド主体へのマッピングを定義
属性
次の表は、role-map 要素の属性を説明しています。左側の列には属性名があり、中央の列はデフォルト値を示し、右側の列ではその属性を説明します。
   role-map 属性
属性
デフォルト値
説明
map-id
マッピングの ID を定義
map-element
map-element を定義します。複数の (サーバー) 主体を同じバックエンド主体にマップすることができます。
サブ要素
次の表は、map-element 要素のサブ要素を説明しています。左側の列にはサブ要素名、中央の列には必要指定数、右側の列には要素の説明を示しています。
   map-element サブ要素
要素
デフォルト値
説明
principal
サーブレットおよび EJB クライアントの主体
backend-principal
EIS のバックエンド主体
principal
サーブレットおよび EJB クライアントの主体を定義
サブ要素
次の表は、principal 要素のサブ要素を説明しています。左側の列にはサブ要素名、中央の列には必要指定数、右側の列には要素の説明を示しています。
   principal サブ要素
要素
デフォルト値
説明
description
主体を説明
属性
次の表は、principal 要素の属性を説明しています。左側の列には属性名があり、中央の列はデフォルト値を示し、右側の列ではその属性を説明します。
   principal 属性
属性
デフォルト値
説明
user-name
ユーザー名を含む
backend-principal
バックエンド EIS 主体を定義
サブ要素
なし
属性
次の表は、backend-principal 要素の属性を説明しています。左側の列には属性名があり、中央の列はデフォルト値を示し、右側の列ではその属性を説明します。
   backend-principal 属性
属性
デフォルト値
説明
user-name
バックエンドユーザー名を含む
password
バックエンドパスワードを含む
credential
証明書のタイプを含む
description
リソースアダプタを定義します。
サブ要素
なし
サンプルアプリケーション XML ファイル
sun-ra.xml ファイルは、配備のためにカスタマイズする必要があります。「コード例」には、コードの例、およびカスタマイズの必要な各パラメータやアイテムの説明があります。
この節では次のトピックについて説明します。
sun-ra.xml ファイルのサンプル
次のコードは、sun-ra.xml ファイルの例です。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-connector PUBLIC "-//Sun Microsystems, Inc.//DTD Sun ONE Application Server 7.0 Connector 1.0//EN" "http://www.sun.com/software/sunone/appserver/dtds/sun-connector_1_ 0-0.dtd">
<sun-connector>
<resource-adapter jndi-name="Comet" max-pool-size="20" steady-pool-size="10" max-wait-time-in-millis="300000" idle-timeout-in-seconds="5000">
</resource-adapter>
<role-map map-id="mainframe">
<map-element>
<principal user-name="keren"></principal>
<backend-principal user-name="pazit" password="tulip" credential="credential">
</backend-principal>
</map-element>
</role-map>
</sun-connector>
ra.xml ファイルのサンプル
ra.xml ファイルの例は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2002 Sun Microsystems, Inc. All rights reserved.
-->
<!DOCTYPE connector PUBLIC '-//Sun Microsystems, Inc.//DTD Connector 1.0//EN' '
http://java.sun.com/dtd/connector_1_0.dtd'>
<connector>
<display-name>CometResourceAdapter</display-name>
<vendor-name>sun</vendor-name>
<spec-version>1.0</spec-version>
<eis-type>Comet</eis-type>
<version>1.0</version>
<resourceadapter>
<managedconnectionfactory-class>samples.connectors.simple.CometMana gedConnectionFactory</managedconnectionfactory-class>
<connectionfactory-interface>javax.resource.cci.ConnectionFactory</ connectionfactory-interface>
<connectionfactory-impl-class>samples.connectors.simple.CometConnec tionFactory</connectionfactory-impl-class>
<connection-interface>javax.resource.cci.Connection</connection-int erface>
<connection-impl-class>samples.connectors.simple.CometConnection</c onnection-impl-class>
<transaction-support>NoTransaction</transaction-support>
<config-property>
<config-property-name>Host</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>localhost</config-property-value>
</config-property>
<config-property>
<config-property-name>Port</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>8020</config-property-value>
</config-property>
<authentication-mechanism>
<authentication-mechanism-type>BasicPassword</authentication-mechan ism-type>
<credential-interface>javax.resource.security.PasswordCredential</c redential-interface>
</authentication-mechanism>
<reauthentication-support>false</reauthentication-support>
</resourceadapter>
</connector>
.rar ファイルを配備するための準備
.rar ファイルは次のものを含む必要があります。
- connector_1-0.dtd ファイルで定義した標準配備情報を含む配備記述子ファイル。
配備記述子は、META-INF/ra.xml の名前を付けて .rar ファイルに保存する必要があります。
- Sun ONE Application Server コネクタ sun-ra.xmlファイル。追加の Application Server 固有の配備情報を指定します。
sun-ra.xml は、META-INF/sun-ra.xml の名前を付けて .rar ファイルに保存する必要があります。
- リソースアダプタに必要な Java インタフェース、実装およびユーティリティクラスは、リソースアダプタモジュールの一部として、1 つまたは複数の .jar ファイルにパッケージ化する必要があります。
- リソースアダプタに必要なプラットフォームに依存するライブラリも、リソースアダプタモジュールでパッケージ化する必要があります。
.rar ファイルのディレクトリ構造
リソースアダプタモジュールのサンプルに含まれているファイルは、次のとおりです。
- /META-INF/ra.xml
- /META-INF/sun-ra.xml
- /readme.html
- /ra.jar
- /client.jar
- /win.dll
- /solaris.so
上の例では、ra.xml は配備記述子であり、sun-ram.xml は Sun 固有の配備記述子です。ra.jar と client.jar には、リソースアダプタの Java インタフェースと実装クラスが含まれています。win.dll と solaris.so は、ネイティブライブラリの例です。