Administration Console オンライン ヘルプ
XML
[XML に関する属性と Administration Console 画面のリファレンス]
XML レジストリ は、WebLogic Server のインスタンスの XML リソースをコンフィグレーションおよび管理する機能です。WebLogic Server の XML リソースには、XML データを解析するアプリケーションで使用するパーサ、XML データを変換するアプリケーションで使用するトランスフォーマ、外部エンティティの解決、および外部エンティティのキャッシュがあります。
WebLogic Server のインスタンスに XML レジストリが関連付けられていない場合、ドキュメントの解析や変換には組み込みのパーサおよびトランスフォーマが使用されます。また、外部エンティティの解決をコンフィグレーションして XML アプリケーションのパフォーマンス向上を図ることはできません。
WebLogic Server のインスタンスに XML レジストリの関連付けを行うと、XML コンフィグレーションの全オプションが、そのサーバを使用する XML アプリケーションで使用可能となります。
ある特定の XML レジストリについて、次の 2 種類のエントリをコンフィグレーションできます。
- パーサとトランスフォーマのコンフィグレーション
- 外部エンティティの解決のコンフィグレーション
タスク
組み込まれていないパーサまたはトランスフォーマのコンフィグレーション
- 左ペインで、[サービス] ノードの下の [XML] ノードを右クリックして、ドロップダウン メニューから [新しい XML レジストリのコンフィグレーション] を選択します。新しい XML レジストリを作成するウィンドウが表示されます。
- [名前] フィールドにユニークなレジストリ名を入力し、[Document Builder ファクトリ] フィールド、[SAX パーサ ファクトリ] フィールド、および [Transformer ファクトリ] フィールドに、対応するファクトリのパーサおよびトランスフォーマのクラスを設定します。
たとえば、WebLogic FastParser を使用するには、次の情報を入力します。
[名前] : WebLogic FastParser
[Document Builder ファクトリ] :
[SAX パーサ ファクトリ] : weblogic.xml.babel.jaxp.SAXParserFactoryImpl
[Transformer ファクトリ] :
前述の例では、[Document Builder ファクトリ] と [Transformer ファクトリ] が空白のままであることに注意してください。これは、DOM の解析と変換には、組み込みのパーサとトランスフォーマがそれぞれ使用されるということです。WebLogic FastParser は、SAX の解析にのみ使用されます。
Apache Xerces パーサと Xalan トランスフォーマを直接指定する場合は、次の情報を入力してください。
[名前] : Apache Xerces/Xalan Registry
[Document Builder ファクトリ] : org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
[SAX パーサ ファクトリ] : org.apache.xerces.jaxp.SAXParserFactoryImpl
[Transformer ファクトリ] : org.apache.xalan.processor.TransformerFactoryImpl
- [キャッシュのタイミング] リスト ボックスから、次のオプションのうち 1 つを選択します。
- [参照時]—WebLogic Server では、URL によって参照された外部エンティティを、そのエンティティが XML ドキュメントで最初に参照されたときにキャッシュします。
- [初期化時]—WebLogic Server では、サーバの起動時にエンティティをキャッシュします。
- [キャッシュしない]—WebLogic Server では、外部エンティティをキャッシュしません。
- [作成] ボタンをクリックします。左ペインの [XML] ノードの下に XML レジストリが作成され、表示されます。
- この XML レジストリのデプロイ先のサーバを選択します。
特定のドキュメント タイプ用パーサのコンフィグレーション
特定のドキュメント タイプ用にパーサをコンフィグレーションする場合は、ドキュメントのシステム ID、パブリック ID、またはルート要素タグを使用して、ドキュメント タイプを識別できます。
警告: WebLogic Server では、ドキュメント タイプを識別しようとするとき、XML ドキュメントの最初の 1000 バイトのみを検索します。この最初の 1000 バイトの中に DOCTYPE 識別子が見つからなければ、ドキュメントの検索は終了し、WebLogic Server インスタンス用にコンフィグレーションされたパーサを使用してドキュメントの解析が行われます。
注意: 次の手順では、新しい XML レジストリを作成し、必要なパーサ レジストリ エントリを追加し、それをサーバと関連付けることを想定しています。既存の XML レジストリとサーバを関連付け済みであれば、手順 7. に進んでください。
- 左ペインで、[サービス] ノードの下の [XML] ノードを右クリックして、ドロップダウン メニューから [新しい XML レジストリのコンフィグレーション] を選択します。新しい XML レジストリを作成するウィンドウが表示されます。
- [名前] フィールドにユニークなレジストリ名を入力します。サーバ用に、デフォルトのパーサおよびトランスフォーマをコンフィグレーションする場合は、[Document Builder ファクトリ] フィールド、[SAX パーサ ファクトリ] フィールド、および [Transformer ファクトリ] フィールドにファクトリ クラス名を入力します。それ以外の場合は、これらのフィールドは空白にしておきます。
- [作成] ボタンをクリックします。左ペインの [XML] ノードの下に XML レジストリが作成され、表示されます。
- この XML レジストリのデプロイ先のサーバを選択します。
- 左ペインの [XML] ノードの下で、XML レジストリの下にある [パーサ選択のエントリ] ノードを右クリックします。ドロップダウン メニューから、[新しい XML パーサ選択レジストリ エントリのコンフィグレーション] を選択します。右ペインに、ドキュメント タイプ情報を入力するための空のウィンドウが表示されます。
- 次の方法のいずれかで、ドキュメント タイプ情報を入力します。
- [パブリック ID] フィールドまたは [システム ID] フィールドのどちらかを使用して、doctype を指定します。たとえば、
car.xml
(コード リスト 1-1 参照) の場合、[パブリック ID] フィールドに「-//BEA Systems, Inc.//DTD for cars//EN
」と入力します。
- ドキュメントのルート要素タグ名を指定します。
car.xml
の例では、[ルート要素タグ] フィールドに「CAR
」と入力します。
XML ドキュメントでネームスペースが定義されている場合は、必ず「VEHICLES:CAR
」のような、完全修飾されたルート要素タグを入力してください。
コード リスト 1-1 car.xml ファイル
<?xml version="1.0"?>
<!-- この XML ドキュメントでは、自動車を説明 -->
<!DOCTYPE CAR PUBLIC "-//BEA Systems, Inc.//DTD for cars//EN"
"http://www.bea.com/dtds/car.dtd">
<CAR>
<MAKE>Toyota</MAKE>
<MODEL>Corrolla</MODEL>
<YEAR>1998</YEAR>
<ENGINE>1.5L</ENGINE>
<HP>149</HP>
</CAR>
- [Document Builder ファクトリ] フィールドまたは [SAX パーサ ファクトリ] フィールドに、適切なファクトリ パーサ クラスを設定します。
たとえば、このドキュメント タイプを WebLogic FastParser で解析するように指定するには、[SAX パーサ ファクトリ] フィールドに「weblogic.xml.babel.jaxp.SAXParserFactoryImpl
」と入力します。
注意: [パーサ クラス名] フィールドには何も入力しないでください。このフィールドは、旧バージョンの WebLogic Server との下位互換性のためにのみ存在します。
- [作成] ボタンをクリックします。XMLParserSelect レジストリ エントリが作成されます。
外部エンティティの解決のコンフィグレーション
WebLogic Server で外部エンティティの解決をコンフィグレーションする場合は、WebLogic 管理サーバからアクセス可能なディレクトリに、エンティティ ファイルを物理的にコピーします。次に、XML ドキュメントで外部エンティティへの参照があるたびに、管理サーバでローカルのコピーが使用されるように指定します。
注意: 次の手順では、新しい XML レジストリを作成し、必要な外部エンティティ解決レジストリ エントリを追加し、それをサーバと関連付けることを想定しています。既存の XML レジストリとサーバを関連付け済みであれば、手順 7. に進んでください。
- 左ペインで、[サービス] ノードの下の [XML] ノードを右クリックして、ドロップダウン メニューから [新しい XML レジストリのコンフィグレーション] を選択します。右ペインに、新しい XML レジストリを作成するウィンドウが表示されます。
- [名前] フィールドに、ユニークなレジストリ名を入力します。サーバ用に、デフォルトのパーサおよびトランスフォーマをコンフィグレーションする場合は、[Document Builder ファクトリ] フィールド、[SAX パーサ ファクトリ] フィールド、および [Transformer ファクトリ] フィールドにファクトリ クラス名を入力します。それ以外の場合は、これらのフィールドは空白にしておきます。
- [作成] ボタンをクリックします。左ペインの [XML] ノードの下に XML レジストリが作成され、表示されます。
- この XML レジストリのデプロイ先のサーバを選択します。
- 左ペインの [XML] ノードの下で、XML レジストリの下にある [エンティティ スペックのエントリ] ノードを右クリックします。ドロップダウン メニューから、[新しい XML エンティティ スペックのレジストリ エントリのコンフィグレーション] を選択します。右ペインに、エンティティ解決情報を入力するための空のウィンドウが表示されます。
- XML ドキュメントで外部エンティティの参照に使用する [システム ID] または [パブリック ID] のいずれかを入力します。たとえば、次の
car.xml
ファイルでは、[システム ID] に「http://www.bea.com/dtds/car.dtd
」と入力します。
コード リスト 1-2 car.xml ファイル
<?xml version="1.0"?>
<!-- この XML ドキュメントでは、自動車を説明 -->
<!DOCTYPE CAR PUBLIC "-//BEA Systems, Inc.//DTD for cars//EN"
"http://www.bea.com/dtds/car.dtd">
<CAR>
<MAKE>Toyota</MAKE>
<MODEL>Corrolla</MODEL>
<YEAR>1998</YEAR>
<ENGINE>1.5L</ENGINE>
<HP>149</HP>
</CAR>
- 外部エンティティのローカル コピーをコンフィグレーションしている場合は、レジストリ エンティティのディレクトリ
DOMAIN
/xml/registries/
reg_name
が存在することを確認してください。ここで、DOMAIN
はドメイン ディレクトリ、reg_name
は XML レジストリの名前です。存在しない場合は、作成します。
- [エンティティ URI] フィールドで、次の 2 つのエンティティ パスの一方を入力します。
- 管理サーバにあるエンティティ ファイルのコピーのパス名。このパス名は、レジストリ エンティティ ディレクトリ
DOMAIN
/xml/registries/
reg_name
を基準とした相対パスとします。
たとえば、car.xml
ファイルでは、[エンティティ URI] フィールドに「dtds/car.dtd
」と入力することができます。
- Web に公開される外部エンティティ、またはリポジトリに格納されるエンティティを指す URL。たとえば、J2EE エンタープライズ アプリケーションの記述に使用される
application.xml
ファイル用の DTD を参照するには、「http://java.sun.com/j2ee/dtds/application_1_2.dtd」と入力します。また、データベース内のエンティティを参照するには、「jdbc:
」を使用します。
外部エンティティを指定するには、http://
、file://
、jdbc:
、または ftp://
のプロトコル宣言を使用します。
- [キャッシュのタイミング] リスト ボックスから、次のオプションのうち 1 つを選択します。
- [参照時]—WebLogic Server では、URL によって参照された外部エンティティを、そのエンティティが XML ドキュメントで最初に参照されたときにキャッシュします。
- [初期化時]—WebLogic Server では、サーバの起動時にエンティティをキャッシュします。
- [レジストリの設定通り]—WebLogic Server では、デフォルトのキャッシュ設定を使用します。
- [キャッシュしない]—WebLogic Server では、外部エンティティをキャッシュしません。
- [キャッシュ タイムアウト間隔] フィールドに、キャッシュされた外部エンティティが古くなる (期限切れになる) までの秒数を入力します。WebLogic Server では、キャッシュされたコピーがこの期間よりも長くキャッシュ内に存在していれば、指定した URL または管理サーバを基準とした相対パス名から、外部エンティティを再取得します。
このフィールドのデフォルト値は -1 です。これは、WebLogic Server に対しグローバル タイムアウト値が使用されることを意味します。
- [作成] ボタンをクリックします。XMLEntitySpec レジストリ エントリが作成されます。
- Web からエンティティをキャッシュするのではなく、エンティティのローカル コピーを使用するように指定した場合は、エンティティ ファイルをエンティティ ディレクトリにコピーします。
たとえば、car.dtd
ファイルをディレクトリ DOMAIN
/xml/registries/
reg_name
/dtds
にコピーします。ここで、DOMAIN
はドメイン ディレクトリ、reg_name
は XML レジストリの名前です。
外部エンティティ キャッシュのコンフィグレーション
外部エンティティ キャッシュの、以下のプロパティをコンフィグレーションできます。
- キャッシュ メモリのサイズ (単位 : KB)。このプロパティのデフォルト値は 500KB です。
- 永続ディスク キャッシュのサイズ (単位 : MB)。このプロパティのデフォルト値は 5MB です。
- WebLogic Server でキャッシュされてから、キャッシュ内の外部エンティティが古くなるまでの秒数。これはサーバ全体のデフォルト値です。エンティティをコンフィグレーションする際に、特定の外部エンティティについて、この値をオーバーライドできます。このプロパティのデフォルト値は 120 秒 (2 分) です。
外部エンティティ キャッシュをコンフィグレーションするには、次の手順に従います。
- 左ペインの [サーバ] ノードの下で、外部エンティティ キャッシュをコンフィグレーションする WebLogic Server の名前をクリックします。
- [XML] タブを選択します。WebLogic Server の XML プロパティをコンフィグレーションするウィンドウが、右ペインに表示されます。
- [キャッシュ メモリ サイズ] フィールドに、キャッシュ メモリのサイズを入力します (単位 : KB)。このプロパティのデフォルト値は 500KB です。
- [キャッシュ ディスク サイズ] フィールドに、永続ディスク キャッシュのサイズを入力します (単位 : MB)。このプロパティのデフォルト値は 5MB です。
- [キャッシュ タイムアウト間隔] フィールドに、エンティティが古くなるまでの秒数を入力します。このプロパティのデフォルト値は 120 秒です。
外部エンティティ キャッシュのモニタ
外部エンティティ キャッシュに関する一連の統計情報を使用して、キャッシュの効果をモニタできます。統計情報では以下が示されます。
- キャッシュの現在の状態
- 現在のセッションの累積アクティビティ
- キャッシュ作成後 (通常は WebLogic Server 起動後) の累積アクティビティ
外部エンティティ キャッシュをモニタするには、次の手順に従います。
- 左ペインの [サーバ] ノードの下で、外部エンティティ キャッシュをコンフィグレーションする WebLogic Server の名前をクリックします。
- [XML] タブを選択します。WebLogic Server の XML プロパティをコンフィグレーションするウィンドウが、右ペインに表示されます。
- 右ペインの [XML エンティティ キャッシュのモニタ] をクリックします。
- キャッシュの現在の状態を表示するには [現在] タブを、現在のセッションの累積アクティビティを表示するには [セッション] タブを、キャッシュ作成後 (通常は WebLogic Server 起動後) の累積アクティビティを表示するには、[履歴] タブをクリックします。