• 検索結果がありません。

Oracle Internet Application Server 8i Oracle Application Serverからの移行 , リリース 1.0

N/A
N/A
Protected

Academic year: 2021

シェア "Oracle Internet Application Server 8i Oracle Application Serverからの移行 , リリース 1.0"

Copied!
48
0
0

読み込み中.... (全文を見る)

全文

(1)

Oracle Internet Application Server 8i

Oracle Application Server

からの移行

リリース 1.0

2000年 9 月 部品番号 : J02072-01

(2)

Oracle Internet Application Server 8i Oracle Application Server からの移行 , リリース 1.0 部品番号: J02072-01

原本名:Oracle Internet Application Server 8i Migrating from Oracle Application Server, Release 1.0.1 原本部品番号:A83709-02

原本著者:Sanjay Singh

原本協力者:Kai Li, Beth Roeser, Susan Gordon

Copyright © 1999, Oracle Corporation. All rights reserved. Printed in Japan. 制限付権利の説明 プログラム(ソフトウェアおよびドキュメントを含む)の使用、複製または開示は、オラクル社との契 約に記された制約条件に従うものとします。著作権、特許権およびその他の知的財産権に関する法律に より保護されています。 当プログラムのリバース・エンジニアリング等は禁止されております。 このドキュメントの情報は、予告なしに変更されることがあります。オラクル社は本ドキュメントの無 謬性を保証しません。 * オラクル社とは、Oracle Corporation(米国オラクル)または日本オラクル株式会社(日本オラクル) を指します。 危険な用途への使用について オラクル社製品は、原子力、航空産業、大量輸送、医療あるいはその他の危険が伴うアプリケーション を用途として開発されておりません。オラクル社製品を上述のようなアプリケーションに使用すること についての安全確保は、顧客各位の責任と費用により行ってください。万一かかる用途での使用により クレームや損害が発生いたしましても、日本オラクル株式会社と開発元であるOracle Corporation(米 国オラクル)およびその関連会社は一切責任を負いかねます。 当プログラムを米国国防総省の米国政府 機関に提供する際には、『Restricted Rights』と共に提供してください。この場合次の Notice が適用され ます。

Restricted Rights Notice

Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-19, Commercial Computer Software - Restricted Rights (June, 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065.

このドキュメントに記載されているその他の会社名および製品名は、あくまでその製品および会社を識 別する目的にのみ使用されており、それぞれの所有者の商標または登録商標です。

(3)

iii

目次

目次

目次

目次

はじめに

はじめに

はじめに

はじめに ... vii

対象読者 ... vii 関連ドキュメント ... vii マニュアルの表記規則 ... vii

1

Oracle Internet Application Server

の概要

の概要

の概要

の概要

Oracle Internet Application Server とはとはとはとは ... 1-2 Oracle Internet Application Server のコンポーネントの移行オプションのコンポーネントの移行オプションのコンポーネントの移行オプションのコンポーネントの移行オプション ... 1-2 エンタープライズ・サービスの移行 エンタープライズ・サービスの移行エンタープライズ・サービスの移行 エンタープライズ・サービスの移行 ... 1-3 概要 ... 1-3 スケーラビリティ ... 1-3 可用性とフォールト・トレラント ... 1-4 ロード・バランシング ... 1-4 管理 ... 1-5 セキュリティ ... 1-5

2

JWeb

アプリケーションから

アプリケーションから

アプリケーションから

アプリケーションから Apache JServ への移行

への移行

への移行

への移行

Apache JServ とはとはとは ... 2-2とは Oracle Application Server の JServlet から Apache JServ サーブレットへの移行 ... 2-2 JWeb ととととApache JServ 1.1 の違いの違いの違いの違い ... 2-2 アーキテクチャ ... 2-2 ライフ・サイクル ... 2-6 スレッド ... 2-7 セッション ... 2-7

(4)

HTML ページの動的コンテンツ生成 ... 2-8 JWeb アプリケーションのコードの変更アプリケーションのコードの変更アプリケーションのコードの変更 ... 2-8アプリケーションのコードの変更 セッション制御 ... 2-8 アプリケーション・スレッド ... 2-9 ロギング ... 2-9

3

Oracle Application Server

カートリッジの移行

カートリッジの移行

カートリッジの移行

カートリッジの移行

カートリッジ・タイプと対応する カートリッジ・タイプと対応するカートリッジ・タイプと対応する カートリッジ・タイプと対応するApache モジュールモジュールモジュールモジュール ... 3-2 PL/SQL の移行の移行の移行の移行 ... 3-2 ファイルのアップロードおよびダウンロード ... 3-3 アップロード・ファイルのドキュメント形式 ... 3-4 oas2ias ツールの使用方法 ... 3-5 カスタム認証 ... 3-7 位置パラメータの受渡し方式 ... 3-7 SQL ファイルの実行 ... 3-7 Perl の移行の移行の移行 ... 3-8の移行 Oracle Application Server の Perl アプリケーション ... 3-8 Perl カートリッジ・スクリプトの移行 ... 3-9 Oracle Application Server の Perl カートリッジのバリエーション ... 3-10 LiveHTML の移行の移行の移行 ... 3-11の移行 SSI ... 3-11 スクリプト ... 3-12

4

EJB

、ECO/Java および

および

および

および JCORBA アプリケーションの移行

アプリケーションの移行

アプリケーションの移行

アプリケーションの移行

EJB の移行の移行の移行 ... 4-2の移行 配置記述子 ... 4-2 クライアント・コード ... 4-3 ロギング(サーバー・コード) ... 4-3 ECO/Java の移行の移行の移行の移行 ... 4-4 リモート・インタフェース ... 4-4 ホーム・インタフェース ... 4-4 インプリメンテーション・クラス ... 4-4 JCORBA からからからからEJB への移行への移行への移行 ... 4-5への移行 リモート・インタフェース ... 4-5 ホーム・インタフェース ... 4-5

(5)

v オブジェクトのインプリメンテーション ... 4-5 パラメータのシリアライズ化 ... 4-6

索引

索引

索引

索引

(6)
(7)

vii

はじめに

はじめに

はじめに

はじめに

対象読者

対象読者

対象読者

対象読者

このマニュアルは、アプリケーション設計者、開発者およびOracle Application Server の Web サイトのメンテナンス担当者を対象としています。

関連ドキュメント

関連ドキュメント

関連ドキュメント

関連ドキュメント

■ 『Oracle Internet Application Server 8i Oracle Application Server からの移行』 ■ 『Oracle Internet Application Server 8i 概要』

■ 『Oracle Internet Application Server 8i インストレーション・ガイド』 ■ 『Oracle Internet Application Server 8i mod_plsql の使用』

マニュアルの表記規則

マニュアルの表記規則

マニュアルの表記規則

マニュアルの表記規則

次に、このマニュアルで使用される表記規則を示します。 表記規則 表記規則 表記規則 表記規則 例例例例 説明説明説明説明 太字 tnsnames.ora runInstaller www.oracle.com ファイル名、 ユーティリティ、 プロセス、 およびURL を表します。 斜体 file1 テキスト内の可変部分を表します。このプレー スホルダを特定の値や文字列に置き換えます。 山カッコ <filename> コード内の可変部分を表します。このプレース ホルダを特定の値や文字列に置き換えます。

(8)

固定幅フォント owsctl start wrb 表示どおりに入力するテキスト。ファンクショ ン(関数)にも使用します。 大カッコ [-c string] [on|off] オプション項目を表します。 オプション項目の選択肢がそれぞれ垂直バー (|)で区切って示され、その中のいずれか 1 つ を選択できます。 中カッコ {yes|no} 必須項目の選択肢が垂直バー(|)で区切って 示されます。 省略記号 n,... その前の項目を何回でも繰り返すことができる ことを表します。 表記規則 表記規則 表記規則 表記規則 例例例例 説明説明説明説明

(9)

Oracle Internet Application Serverの概要 1-1

1

Oracle Internet Application Server

の概要

の概要

の概要

の概要

この章では、Oracle Internet Application Server の特徴を、Oracle Application Server と比較 して説明します。また、Oracle Application Server のコンポーネントと、Oracle Internet Application Server における同等の機能のマッピングも示します。

内容

内容

内容

内容

■ Oracle Internet Application Server とは

■ Oracle Internet Application Server のコンポーネントの 移行オプション

(10)

Oracle Internet Application Serverとは

Oracle Internet Application Server

Oracle Internet Application Server

Oracle Internet Application Server

Oracle Internet Application Server

とは

とは

とは

とは

Oracle Internet Application Server は中間層のアプリケーション・サーバーで、Web、およ びデータベース中心のアプリケーションが単一のデータベース・インスタンスの制限を超え たスケーラビリティを実現するよう設計されています。この製品により、次のものが提供さ れます。 ■ 複数の運用オプションを備えた運用モデル。 ■ 様々なWeb コンテンツの生成手段。PL/SQL と PSP、Java サーブレットと JSP、および Perl が含まれます。 ■ Java、J2EE および CORBA など、既存(および展開中)の標準との規格合致性。

Oracle Internet Application Server

Oracle Internet Application Server

Oracle Internet Application Server

Oracle Internet Application Server

のコンポーネントの

のコンポーネントの

のコンポーネントの

のコンポーネントの

移行オプション

移行オプション

移行オプション

移行オプション

次の表に、Oracle Application Server のコンポーネントと、それぞれに対応する Oracle Internet Application Server の機能を示します。

表 表表

表 1-1 アプリケーション・モデルの比較アプリケーション・モデルの比較アプリケーション・モデルの比較アプリケーション・モデルの比較

Oracle Application Server Oracle Internet Application Server

JWeb アプリケーション Apache JServ アプリケーション

JServlet アプリケーション Apache JServ アプリケーション

LiveHTML アプリケーション Apache SSI および OracleJSP アプリケーション

Perl アプリケーション mod_perl アプリケーション

JCORBA アプリケーション Oracle8i JVM EJB アプリケーション ECO/Java アプリケーション Oracle8i JVM EJB アプリケーション

EJB アプリケーション Oracle8i JVM EJB アプリケーション

CWeb アプリケーション (現在対応する機能なし)

(11)

エンタープライズ・サービスの移行

Oracle Internet Application Serverの概要 1-3

エンタープライズ・サービスの移行

エンタープライズ・サービスの移行

エンタープライズ・サービスの移行

エンタープライズ・サービスの移行

この項では、エンタープライズ・サービスについて、管理者および開発者に関係するWeb サイトの特徴を説明します。Oracle Application Server におけるスケーラビリティ、可用性、 フォールト・トレラント、ロード・バランシングおよび管理について説明し、さらにご使用 のサイトをOracle Internet Application Server に移行するとどのように機能するかを示しま す。

概要

概要

概要

概要

Oracle Application Server は、HTTP レイヤー、サーバー・レイヤーおよびアプリケーショ ン・レイヤーで構成されます。HTTP リスナー・レイヤーは、HTTP サーバーとディスパッ チャで構成されています。サーバー・レイヤーは、これらのアプリケーションを管理するた めの共通のコンポーネント・セットを提供します。これらのコンポーネントには、ロード・ バランシング、ロギング、自動障害リカバリ、セキュリティ、ディレクトリおよびトランザ クション・コンポーネントが含まれます。アプリケーション・レイヤーはアプリケーショ ン、カートリッジおよびカートリッジ・サーバーで構成されています。リクエストを受信す ると、ディスパッチャはそのリクエストをアプリケーション・サーバー・レイヤーにルー ティングします。使用可能なカートリッジ・インスタンスが存在する場合はそのインスタン スがリクエストを処理し、存在しない場合は新しいインスタンスが作成されます。

同様に、Oracle Internet Application Server では、Oracle HTTP Server と mod_jserv が同じ プロセス内で実行されます。Apache JServ は純粋な Java サーブレット・エンジンで、別の プロセスで実行されます。Oracle Application Server のディスパッチャと同じように、 Apache Web サーバーは mod_jserv を使用してリクエストを Apache JServ プロセスにルー ティングします。

スケーラビリティ

スケーラビリティ

スケーラビリティ

スケーラビリティ

Oracle Application Server は、シングル・ノードの環境でもマルチ・ノードの環境でも運用 できます。同様に、Oracle HTTP Server と Apache JServ も、シングル・ノード環境または マルチ・ノード環境で設定可能です。

HTTP

HTTP

HTTP

HTTP

サーバー

サーバー

サーバー

サーバー

Oracle Application Server では、各リスナーは、最大数の同時接続を処理できます。この数 値は、オペレーティング・システムの制限によって異なります。1 つのサイト上でリクエス トの負荷を分散するには、複数のWeb リスナーを作成して、それぞれが別の TCP ポートを リスニングするようにします。

UNIX プラットフォームの場合、Oracle HTTP Server は起動時に子プロセスのプールを作成 し、受信クライアント・リクエストの処理に使用します。リクエストが処理されるにつれて 負荷が増加すると、サーバーは、後続のリクエスト用に新しい予備のプロセスを生成しま す。プールの初期サイズと最大サイズ、および予備のサーバー・プロセスの最小数と最大数 は、それぞれ StartServers、MaxClients、MinSpareServers および

(12)

エンタープライズ・サービスの移行

Windows NT の場合、Oracle HTTP Server はマルチスレッド・プロセスとして稼動します。 同時接続数は、ThreadsPerChild ディレクティブで設定されます。これは、UNIX の StartServersおよび MaxClients ディレクティブに対応するものです。 Oracle HTTP Server は、1 つのホスト上で複数のインスタンスを実行して各インスタンスが 異なるIP アドレスと TCP ポートの組合せを使用するように設定することも、もしくは異な るホストで実行することも可能です。

サーブレット・エンジン

サーブレット・エンジン

サーブレット・エンジン

サーブレット・エンジン

Oracle Application Server では、リクエスト数が増加すると、システム内に新しいカート リッジ・サーバーとインスタンスが作成されます。

Oracle HTTP Server では、サーバーからのリクエストを mod_jserv が受信し、そのリクエス トをサーブレット・エンジンであるApache JServ にルーティングします。 Apache JServ は、サーブレットをすべてサーブレット・ゾーン内で実行します。これによ り、セキュリティの強化、複数のJVM の実行が可能、および複数の仮想ホストのサポート などの利点があります。

可用性とフォールト・トレラント

可用性とフォールト・トレラント

可用性とフォールト・トレラント

可用性とフォールト・トレラント

リスナーまたはカートリッジ・サーバーなどのコンポーネントで障害が発生した場合、 Oracle Application Server は障害を検出してそのコンポーネントを再起動し、可能であれば 保存済みの状態情報を復元します。

Oracle HTTP Server では、複数のサーバー・ホストまたは複数の JServ ホストが存在する場 合にそのうちの1 つが停止しても、1 つのサーバーと 1 つの JServ が稼動していればシステ ムは稼動し続けます。判別可能な最新のステータスが各JServ ごとに保持され、すべての Oracle HTTP Server のインスタンスがすべての Apache JServ にリクエストをルーティング できます。

Apache の場合、障害の発生した Apache Web サーバーまたは Apache JServ インスタンスの 再起動は、管理者が行う必要があります。

ロード・バランシング

ロード・バランシング

ロード・バランシング

ロード・バランシング

Oracle Application Server では、優先順位ベースおよび最小 / 最大ベースの 2 種類のロー ド・バランシング方式に基づいて、システム・リソースの割当て、およびリクエストの優先 順位決定が行われます。 優先順位モードでは、アプリケーションおよびカートリッジに設定した優先順位レベルに基 づいて、システムによってリソースが自動的に割り当てられます。プロセス数、スレッド数 およびインスタンス数は、そのアプリケーションおよびコンポーネントのリクエスト負荷と 優先順位レベルに基づいて自動的に決定されます。 最小/ 最大モードでは、それぞれのカートリッジのインスタンス数、スレッド数およびクラ イアントのパラメータ数をカートリッジ・レベルで設定します。

(13)

エンタープライズ・サービスの移行

Oracle Internet Application Serverの概要 1-5

Oracle HTTP Server では、JServ ホストの数、ホストの比率およびこれらのホストの論理 セットを設定ファイルで定義します。システムは、受信リクエストをJServ インスタンスに 割り当てます。JServ インスタンスの 1 つが失敗すると、リクエストは論理セットの他のメ ンバーにリダイレクトされます。

管理

管理

管理

管理

Oracle Application Server では、サイト、リスナーおよびアプリケーションの管理とモニ ター用に、GUI ツールや組込みサポートが用意されています。Oracle Application Server Manager ツールの設定データは、様々な設定ファイルに格納されています。

Oracle HTTP Server では、サイトの管理およびメンテナンスを行うには、Apache サーバー およびApache JServ 設定ファイルを編集します。これらの設定ファイルの数とタイプには、 Oracle Application Server の場合と大きな違いがあります。

表 表表 表 1-2 設定ファイル設定ファイル設定ファイル設定ファイル

セキュリティ

セキュリティ

セキュリティ

セキュリティ

Oracle Application Server では、ユーザー認証、ホスト認証、SSL および Oracle Wallet Manager について、様々なセキュリティ方式をサポートしています。

Oracle Internet Application Server では、Apache JServ はファイアウォールの内側で実行可 能です(AJP プロトコルは 1 つの TCP ポートのみ使用します)。Oracle Internet Application Server は ACL を使用し(ACL を使用するホストからのみ AJP リクエストを受信)、SSL を サポートしています。

Oracle Application Serverリスナーリスナーリスナーリスナー Oracle HTTPサーバー(サーバー(サーバー(サーバー(Apache))))

owl.cfg - 登録済みのリスナーとそれぞれの設 定のリスト。 httpd.conf - 主要な(または唯一の)サーバー 全体の設定ファイル。 (ファイルの場所と変換情報を srm.conf、セ キュリティ情報を access.conf でそれぞれ管理 するか、またはすべてのディレクティブを1 つ のファイルで管理するかを選択可能。) site.app - サイトの設定ファイル。 (対応する機能なし) svlistenerName.cfg - リスナーの設定ファイル。(対応する機能なし) wrb.app - プロセスおよびカートリッジの設定 ファイル。 (対応する機能なし) resources.ora - ORB の設定ファイル。 (対応する機能なし)

(14)
(15)

JWebアプリケーションから Apache JServ への移行 2-1

2

JWeb

アプリケーションから

アプリケーションから

アプリケーションから

アプリケーションから

Apache JServ

への移行

への移行

への移行

への移行

この章では、Oracle Application Server の JWeb アプリケーションを Oracle Internet Application Server の Apache JServ に移行する方法について説明します。JWeb と JServ の 機能の違いについて説明し、さらに移行のコード例を示します。

内容

内容

内容

内容

■ Apache JServ とは

■ JWeb と Apache JServ 1.1 の違い

(16)

Apache JServとは

Apache JServ

Apache JServ

Apache JServ

Apache JServ

とは

とは

とは

とは

Oracle Internet Application Server では、クライアントからの HTTP リクエストの処理に Oracle HTTP Server を使用します。Apache JServ 1.1 は、Servlet 2.0 準拠のサーブレット・ エンジンで、Oracle Internet Application Server に同梱されています。Oracle Application Server 4.x で運用している JWeb アプリケーションが存在し、Oracle Internet Application Server に移行する場合は、JWeb アプリケーションを Servlet 2.0 仕様に移行する必要があり ます。

Oracle Application Server

Oracle Application Server

Oracle Application Server

Oracle Application Server

の JServlet

JServlet

JServlet

JServlet

から

から Apache

から

から

Apache

Apache JServ

Apache

JServ

JServ

JServ

サーブレットへの移行

サーブレットへの移行

サーブレットへの移行

サーブレットへの移行

Apache JServ 1.1 は、Apache 1.3.x、JDK 1.1 以降および JSDK 2.0 と互換性があります。 Oracle Application Server 4.0.8 の JServlet は、Servlet 2.1 の仕様に準拠しています。JServlet をApache に移行する場合は、2.0 と 2.1 準拠のサーブレット間には違いがあるため、 Oracle8i JVM サーブレットへの移行をお薦めします。

Apache JServ の詳細は、 http://java.apache.orgを参照してください。 サーブレットの仕様の詳細は、http://java.sun.comを参照してください。

JJJJWeb

Web

Web

Web

と Apache JServ 1.1

Apache JServ 1.1

Apache JServ 1.1

Apache JServ 1.1

の違い

の違い

の違い

の違い

この項では、JWeb と Apache JServ 1.1 アプリケーションの違いについて説明します。

アーキテクチャ

アーキテクチャ

アーキテクチャ

アーキテクチャ

JWeb アプリケーションは、Oracle Application Server のカートリッジ・インフラストラク チャ内で実行されます。一方、Apache JServ 1.1 のサーブレットは、Oracle HTTP Server お よびJVM 内で稼動します。

(17)

JWebと Apache JServ 1.1 の違い

JWebアプリケーションから Apache JServ への移行 2-3

JWeb

JWeb

JWeb

JWeb

のアーキテクチャ

のアーキテクチャ

のアーキテクチャ

のアーキテクチャ

Oracle Application Server では、JWeb カートリッジ宛てのリクエストは、HTTP リスナーが 受信します。リスナーはリクエストをディスパッチャに渡し、ディスパッチャはWeb Request Broker(WRB)と通信します。WRB は、URL マッピングを使用して、リクエスト の送信先カートリッジ・インスタンスを識別します。リクエストされたカートリッジのカー トリッジ・インスタンスが存在しない場合、カートリッジ・サーバー・ファクトリがカート リッジ・サーバー・プロセスを作成して、カートリッジのインスタンスを生成します。 JWeb では、カートリッジ・サーバー・プロセスは JWeb アプリケーション(Oracle Application Server アプリケーションのパラダイム)を実行する JVM をロードします。図 2-1に、これらのコンポーネントを示します。

図 図図

図 2-1 Oracle Application Server のカートリッジ・インフラストラクチャのカートリッジ・インフラストラクチャのカートリッジ・インフラストラクチャのカートリッジ・インフラストラクチャ

HTTPリスナー ディスパッチャ Web Request Broker JWebリクエスト カートリッジ・ インスタンス カートリッジ・サーバー・プロセス (JWeb アプリケーション) 使用可能なカート リッジ・インスタ ンスにリクエスト をルーティング

(18)

JWebと Apache JServ 1.1 の違い

Apache JServ

Apache JServ

Apache JServ

Apache JServ

のアーキテクチャ

のアーキテクチャ

のアーキテクチャ

のアーキテクチャ

Apache JServ は、mod_jserv とサーブレット・エンジンという 2 つの機能のコンポーネント で構成されます。図2-2に、この構造を示します。

図 図図

図 2-2 Apache JServ のアーキテクチャ(のアーキテクチャ(のアーキテクチャ(のアーキテクチャ(1 対多の例)対多の例)対多の例)対多の例)

mod_jserv は、C でインプリメントされており、Apache Web サーバーと同じプロセスで稼 動するApache モジュールです。Apache HTTP リスナーからリクエストを受信してそのリ クエストをサーブレット・エンジンにルーティングするという、ディスパッチャに似た機能 を持っています。サーブレットのビジネス・ロジックは実行しません。 サーブレット・エンジンは、Servlet 2.0 API をインプリメントするサーブレットを実行する ための実行時環境を提供します。Apache Web サーバーと同じノードまたは異なるノード で、JVM プロセス内で実行されます。各 JVM は 1 つずつサーブレット・エンジンを持って おり、サーブレット・エンジンの数はWeb サーバー(mod_jserv モジュール)の数に比例 しません。mod_jserv は複数のサーブレット・エンジンを使用して動作することが可能で、 その逆も可能です。また、複数のmod_jserv モジュールが複数のサーブレット・エンジンで 動作することも可能です。

Apache JServ

Apache JServ

Apache JServ

Apache JServ

のプロトコル

のプロトコル

のプロトコル

のプロトコル

Apache JServ サーブレット・エンジンは mod_jserv を使用してプロセス内で(またはそのモ ジュールと同じ物理マシンで)は動作しないため、これら2 つのコンポーネントが通信する ためにはプロトコルが必要です。Apache JServ Protocol(AJP)1.1 という独自のプロトコル が使用されています。AJP 1.1 はソケットを使用して通信し、強力な暗号化なしに MD5 ハッ シングを使用して認証アルゴリズムをインプリメントします。詳細は、 http://java.apache.org/jserv/protocol/AJPv11.htmlを参照してください。 サーブレット・ エンジン Apache

mod_perl mod_jserv mod_ssl

AJP AJP サーブレット・ エンジン ノード 1 ノード n サーブレット・ エンジン AJP

(19)

JWebと Apache JServ 1.1 の違い

JWebアプリケーションから Apache JServ への移行 2-5

シングル・ノード設定

シングル・ノード設定

シングル・ノード設定

シングル・ノード設定

サーブレット・エンジンがWeb サーバーと同じマシンに存在する場合、サーブレット・エ ンジンとJVM を Web サーバーに合わせて停止または起動するように mod_jserv モジュール を設定できます。JVM を正常終了するために必要なタスクは、モジュールがすべて実行しま す。またこの場合、mod_jserv が定期的に JVM のステータスをチェックし、1 つ目の JVM がクラッシュしたときには別のJVM を起動することにより、フェイルオーバーを実行する ことも可能です。

マルチ・ノード設定

マルチ・ノード設定

マルチ・ノード設定

マルチ・ノード設定

mod_jserv とサーブレット・エンジンが異なるマシンに存在する場合は、自動ライフ・サイ クル制御は使用できません。エンジンとJVM は、カスタマイズ可能なスクリプトを使用し て手動で起動する必要があります(各サーブレット・エンジンに専用の起動スクリプトが必 要です)。つまり、各エンジンは、カスタムの環境で起動することが可能です。1 つの mod_jserv が処理できるサーブレット・エンジンの最大数は 25 です。 mod_jserv とサーブレット・エンジン・インスタンスは、1 対 1、1 対多、多対 1、および多 対多の関係を確立できます。また、複数のサーブレット・エンジンを1 つのノードに配置す ることも可能です(この場合、mod_jserv が区別できるよう、各 JVM に異なるポート番号 を割り当てる必要があります)。

サーブレット・ゾーン

サーブレット・ゾーン

サーブレット・ゾーン

サーブレット・ゾーン

Apache JServ は、サーブレット・ゾーンというサーブレットの仮想化パラダイムをインプリ メントします。サーブレット・ゾーンは、Web サーバーの仮想ホストと同じものと考えるこ とができます。各ゾーンは、サーブレット・クラスの物理的関係(場所)との論理的な境界 を提供します。このため、各サーブレット・ゾーンには、メンバー・サーブレットの場所に かかわらず(たとえば、異なるホストに存在しても構わない)、共通のURI など、共通コン テキストを割り当てることが可能です。ただし、Apache JServ の現行のインプリメンテー ションでは、各ゾーンに対する強力なセキュリティは提供していません。

(20)

JWebと Apache JServ 1.1 の違い

ライフ・サイクル

ライフ・サイクル

ライフ・サイクル

ライフ・サイクル

JWeb クラスと Apache JServ は異なるライフ・サイクルを持っています。

JWeb

JWeb

JWeb

JWeb

のライフ・サイクル

のライフ・サイクル

のライフ・サイクル

のライフ・サイクル

JWeb クラスでは、標準の main() エントリ・ポイントを使用して実行ロジックを開始しま す。JWeb クラスのライフ・サイクルは、標準の Java クラスにおける main() のロード、リ ンク、初期化および実行と似ています。

ライフ・サイクルの詳細は、http://java.sun.com/docs/books/vmspec/index.htmlを参照して ください。

Apache JServ

Apache JServ

Apache JServ

Apache JServ

のライフ・サイクル

のライフ・サイクル

のライフ・サイクル

のライフ・サイクル

Apache JServ では、サーブレットのライフ・サイクルは Servlet 2.0 の仕様に準拠していま す。ライフ・サイクルは、すべてのサーブレットによって直接または間接的にインプリメン トされる javax.servlet.Servlet インタフェースによって定義されます。このインタ フェースには、サーブレットのライフ・サイクル中に、サーブレット・エンジンにより特定 の順序で特定のタイミングにコールされるメソッドがあります。init() および destroy()メソッドはサーブレットの存続期間中に1 回だけ実行されますが、service() メソッドはサーブレットのロジックを実行するために複数回コールされます。 図2-3に、サーブレットのライフ・サイクルを示します。 図 図図 図 2-3 JServlet のライフ・サイクルのライフ・サイクルのライフ・サイクルのライフ・サイクル インスタンス生成 インプリメンテーション service() 破棄 destroy() 初期化 init() サーブレット (複数のコール)

(21)

JWebと Apache JServ 1.1 の違い

JWebアプリケーションから Apache JServ への移行 2-7

スレッド

スレッド

スレッド

スレッド

JWeb カートリッジと Apache JServ サーブレット・エンジンでは、1 つまたは複数のスレッ ドの実行をサポートしていますが、スレッドのインプリメンテーションは異なります。

JWeb

JWeb

JWeb

JWeb

のスレッド

のスレッド

のスレッド

のスレッド

JWeb カートリッジのスレッドは、Oracle Application Server のカートリッジ設定で「状態を 保持しない」パラメータ(TRUE または FALSE)を切り替えることにより定義されます。 TRUE の場合、カートリッジ・インスタンスは複数のクライアントで共有されます。FALSE の場合は共有されず、一度に1 つのクライアントのみアクセスできます。また、Oracle Application Server が最小 / 最大モードの場合、最小 / 最大カートリッジ・サーバーと最小 / 最大スレッド値を変更して、そのカートリッジのマルチ・スレッドのインプリメント方法 を変更できます。

Apache JServ

Apache JServ

Apache JServ

Apache JServ

のスレッド

のスレッド

のスレッド

のスレッド

Apache JServ サーブレット・エンジンは、デフォルトではマルチ・スレッドに設定されてい ます。エンジン内のサーブレット・コンテナが、クライアントのリクエストを処理するス レッドを管理します。サーブレット・クラスの各インスタンスに、複数のスレッドを実行さ せることが可能です。この場合、サーブレット・インスタンスは複数のクライアントで共有 されます。かわりに、あるクラスによって javax.servlet.SingleThread インタフェー スをインプリメントすることにより、そのクラスが一度に1 つのスレッドのみ実行するよう 指定できます。この場合、このサーブレット・クラスのインスタンスのプールが維持され、 各インスタンスが一度に1 つのクライアントにのみ割り当てられます(インスタンスは共有 されません)。

セッション

セッション

セッション

セッション

JWeb カートリッジでは、Oracle Application Server Manager を使用してクライアント・ セッションを使用可能にできます。Apache JServ では、Servlet 2.0 の仕様に従い、プログラ ムによるセッションのみ使用可能です。このため、コード以外の手段によってセッションが 使用可能になっているJWeb アプリケーションを移行する場合は、サーブレット・セッショ ンAPI を使用して、セッション・メカニズムをプログラムによってインプリメントする必要 があります。2-8 ページの「セッション制御」を参照してください。

(22)

JWebアプリケーションのコードの変更

HTML

HTML

HTML

HTML

ページの動的コンテンツ生成

ページの動的コンテンツ生成

ページの動的コンテンツ生成

ページの動的コンテンツ生成

HTML ページで動的コンテンツを生成するために、JWeb Toolkit 機能を使用できます。 JWeb Toolkit は、HTML ページ内に特殊なプレースホルダを埋め込みます。ファイルが oracle.html.HtmlFileオブジェクトとしてJWeb クラスにインポートされると、 setItemAt()メソッドにより、プレースホルダの場所にコードから生成されたデータが挿 入されます。

これはJWeb 固有の機能であるため、Apache JServ では使用できません。動的情報を HTML ページに埋め込む(スクリプト)場合は、Oracle Internet Application Server で OracleJSP を 使用し、JavaServer Pages を使用することを検討してください。

JWeb

JWeb

JWeb

JWeb

アプリケーションのコードの変更

アプリケーションのコードの変更

アプリケーションのコードの変更

アプリケーションのコードの変更

JWeb アプリケーションを Apache JServ に移行するには、次の部分のコードを変更する必要 があります。 ■ セッション制御 ■ アプリケーション・スレッド ■ ロギング

セッション制御

セッション制御

セッション制御

セッション制御

JWeb アプリケーションでセッションを使用可能にするには、Node Manager の「Web パラ メータ」フォーム内のカートリッジの「クライアント・セッション」パラメータを使用しま す。これにより、実行されたクラスの静的パラメータが、複数のコールにまたがってクライ アント・データを保有することが可能になります。Servlet 1.0 の API では、セッションの状 態はサーブレット・クラスの静的変数に格納されません。かわりにセッション・オブジェク トが明示的に取得され、名前付きの属性を使用してセッションの状態を格納します。 Apache JServ では設定可能なセッションをサポートしていないため、次のように、 javax.servlet.http.HttpServletRequestの getSession() メソッドを使用して コード内でセッションを使用可能にする必要があります。

HttpSession session = request.getSession(true);

すると、セッション情報が javax.servlet.http.HttpSession の putValue() および getValue()メソッドを使用してそれぞれ格納および取得できるようになります。 session.putValue("List", new Vector());

(23)

JWebアプリケーションのコードの変更

JWebアプリケーションから Apache JServ への移行 2-9

JServ

JServ

JServ

JServ

セッションのタイムアウト

セッションのタイムアウト

セッションのタイムアウト

セッションのタイムアウト

セッションのタイムアウト値は、jserv.properties ファイルの session.timeout パラメー タで指定できます。また、サーブレット・セッションAPI の invalidate() を実行するこ とにより、セッションを期限切れにすることも可能です。

JWeb のセッション・タイムアウト・コールバックは、Apache JServ では使用できません。

アプリケーション・スレッド

アプリケーション・スレッド

アプリケーション・スレッド

アプリケーション・スレッド

JWeb では、アプリケーションは oracle.owas.wrb.WRBRunnable クラスを使用してス レッドを管理します。このクラスにより、アプリケーション・スレッドはリクエストおよび レスポンス情報にアクセスできます。Apache JServ では、アプリケーション・スレッドの管 理には、標準のJava スレッド管理のみ必要です(java.lang.Runnable インタフェース が使用されます)。JWeb でも Apache JServ でも、マルチスレッド・アプリケーションは ロード・バランシングの効果を制限するため、アプリケーション・スレッドの使用はお薦め しません。

ロギング

ロギング

ロギング

ロギング

JWeb アプリケーションは、WRB により提供される Oracle Application Server Logger サー ビスを使用して、メッセージのログを出力します。このサービスにより、ファイル・システ ムまたはデータベースなどの中央リポジトリにメッセージを書き込むことができます。 oracle.owas.wrb.services.logger.OutputLogStreamクラスは、Logger サービス との間のインタフェースとして機能します。

Apache JServ では、メッセージは 2 つのログ・ファイルに書き込まれます。mod_jserv に よって生成されたメッセージは、Oracle HTTP Server の http.conf 設定ファイル内の ApJServLogFileディレクティブで指定されたファイルに記録されます。このディレク ティブのデフォルト値は <ORACLE_HOME>/Apache/Jserv/logs/mod_jserv.log です。 サーブレット・エンジンによって生成されたメッセージは、jserv.properties ファイルの log.fileパラメータで指定されたファイルに記録されます。このディレクティブのデフォ ルト値は、<ORACLE_HOME>/Apache/Jserv/logs/jserv.log です。 例外スタック・トレースなど、サーブレット・アプリケーションによって生成されたメッ セージは、jserv.log に記録されます。コード内で、javax.servlet.ServletContext. log()または javax.servlet.GenericServlet.log() メソッドを使用してこのログ・ ファイルへの書込みが可能です。 注意 注意注意 注意 : Apache JServ では、セッションの状態の保持に静的データ・メン バーを使用しないでください(ただし、これはJWeb では一般的な手法で す)。かわりにサーブレット・セッションAPI を使用します。後者のほう が、サーブレット・エンジンはメモリーを効率的に使用します。

(24)

JWebアプリケーションのコードの変更 jserv.properties ファイルにより、サーブレット・エンジンの機能のうち特定の部分をログ に出力するよう選択できます。jserv.log では、これらの部分はチャネルと呼ばれます。 表 表表 表 2-1 jserv.log のチャネルのチャネルのチャネルのチャネル

JWeb Toolkit

JWeb Toolkit

JWeb Toolkit

JWeb Toolkit

パッケージ(

パッケージ(JWeb API

パッケージ(

パッケージ(

JWeb API

JWeb API

JWeb API)

Oracle Application Server の JWeb カートリッジには、Oracle 独自の Java パッケージの JWeb Toolkit が含まれています。JWeb アプリケーションでこれらのパッケージを使用して Oracle Internet Application Server に移行する場合は、コードを変更して、対応する Servlet 2.0 のクラスおよびメソッドを使用する必要があります。対応する機能がない場合は、JWeb パッケージで提供されていた機能をインプリメントするためにコードを再作成する必要があ ります。

一部のJWeb Toolkit パッケージは、WRB などの Oracle Application Server コンポーネント と対話するように特別に設計されているため、これらのパッケージの機能は標準のサーブ レットAPI では再現できません。このため、移行プロセスには、一部のアプリケーションの 再設計も含まれます。 チャネル チャネルチャネル チャネル メッセージ・タイプメッセージ・タイプメッセージ・タイプメッセージ・タイプ log.channel.authentication AJP プロトコルからの認証メッセージ。 log.channel.exceptionTracing サーブレット・エンジンによって捕捉された例外スタック・ トレース。 log.channel.init サーブレット・エンジンからの初期化メッセージ。 log.channel.requestData HTTP リクエストから取得されたデータ。たとえば、HTTP のGET または POST 方式のパラメータ。 log.channel.responseHeaders HTTP レスポンスからのヘッダー情報。 log.channel.serviceRequest リクエスト処理メッセージ。 log.channel.servletLog javax.servlet.ServletContext.logおよび javax.servlet.GenericServlet.logメソッドからの メッセージ。 log.channel.servletManager サーブレット・マネージャからのメッセージ。これらには、 サーブレット・ゾーンのロード/ アンロードおよびクラス の自動リロードに関するメッセージが含まれます。 log.channel.signal システム・シグナル・メッセージ。 log.channel.terminate サーブレット・エンジン終了時に生成されるメッセージ。

(25)

JWebアプリケーションのコードの変更

JWebアプリケーションから Apache JServ への移行 2-11

次の表に、JWeb のメソッドと、それぞれの機能と同等のサーブレット API クラスのメソッ ドを示します。 ■ 表2-2「javax.servlet.http.HttpServletRequest クラスのメソッドと同等の JWeb のメソッド」 ■ 表2-3「javax.servlet.ServletRequest クラスのメソッドと同等の JWeb のメソッド」 ■ 表2-4「javax.servlet.ServletResponse クラスのメソッドと同等の JWeb のメソッド」 ■ 表2-5「javax.servlet.ServletContext クラスのメソッドと同等の JWeb のメソッド」 ■ 表2-6「javax.servlet.http.HttpUtils クラスのメソッドと同等の JWeb のメソッド」 表 表表 表 2-2 javax.servlet.http.HttpServletRequest クラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等の JWeb のメソッドのメソッドのメソッドのメソッド JWebのメソッドのメソッドのメソッドのメソッド サーブレットのメソッドサーブレットのメソッドサーブレットのメソッドサーブレットのメソッド oracle.owas.wrb.services.http.HTTP.getHeader(String) getHeader(name) oracle.owas.wrb.services.http.getCGIEnvironment("AUTH_TYPE") getAuthType() oracle.owas.wrb.services.http.HTTP.getHeaders()1 1 ヘッダー名と値のハッシュテーブルが返されます。 getHeaderNames()2 2 ヘッダー名の列挙が返されます。 oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("PATH_INFO") getPathInfo() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("PATH_TRANSLATED") getPathTranslated() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("QUERY_STRING") getQueryString() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("REQUEST_METHOD") getMethod() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("REMOTE_USER") getRemoteUser() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("SCRIPT_NAME") getServletPath() 表 表表 表 2-3 javax.servlet.ServletRequest クラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等の JWeb のメソッドのメソッドのメソッドのメソッド JWebのメソッドのメソッドのメソッドのメソッド サーブレットのメソッドサーブレットのメソッドサーブレットのメソッドサーブレットのメソッド oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("CONTENT_TYPE") getContentType() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("CONTENT_LENGTH") getContentLength() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("SERVER_PROTOCOL") getProtocol() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("REMOTE_ADDR") getRemoteAddr() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("REMOTE_HOST") getRemoteHost() oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("SERVER_NAME") getServerName()

(26)

JWebアプリケーションのコードの変更 oracle.owas.wrb.services.http.HTTP.getCGIEnvironment("SERVER_PORT") getServerPort() oracle.owas.wrb.services.http.HTTP.getURLParameter(name) getCharacterEncoding() getParameter(name) oracle.owas.wrb.services.http.HTTP.getURLParameters getParameterNames() getParameterValues(name)1 1 "name"に対して複数の値が存在する場合。 表 表表 表 2-4 javax.servlet.ServletResponse クラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等の JWeb のメソッドクラスのメソッドと同等の のメソッドのメソッドのメソッド JWebのメソッドのメソッドのメソッドのメソッド サーブレットのメソッドサーブレットのメソッドサーブレットのメソッドサーブレットのメソッド oracle.owas.wrb.WRBWriter getWriter() 表 表表 表 2-5 javax.servlet.ServletContext クラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等の JWeb のメソッドのメソッドのメソッドのメソッド JWebのメソッドのメソッドのメソッドのメソッド サーブレットのメソッドサーブレットのメソッドサーブレットのメソッドサーブレットのメソッド oracle.owas.wrb.services.http.HTTP.getCGIEnvironment getServerInfo()

oracle.OAS.Services.Loggerを使用 log(Exception, String) log(String)

表 表表

表 2-6 javax.servlet.http.HttpUtils クラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等の JWeb のメソッドのメソッドのメソッドのメソッド

JWebのメソッドのメソッドのメソッドのメソッド サーブレットのメソッドサーブレットのメソッドサーブレットのメソッドサーブレットのメソッド oracle.owas.wrb.services.http.HTTP.getURLParameters(Hashtable) parsePostData(int, ServletInputStream) oracle.owas.wrb.services.http.HTTP.getURLParameters(Hashtable) parseQueryString(String) oracle.html.HtmlStream.print javax.servlet.ServletOutputStream.print oracle.html.HtmlStream.println avax.servlet.ServletOutputStream.println oracle.owas.wrb.services.http.MultipartElement javax.servlet.ServletInputStream.readLine 表 表表 表 2-3 javax.servlet.ServletRequest クラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等のクラスのメソッドと同等の JWeb のメソッド(続き)のメソッド(続き)のメソッド(続き)のメソッド(続き) JWebのメソッドのメソッドのメソッドのメソッド サーブレットのメソッドサーブレットのメソッドサーブレットのメソッドサーブレットのメソッド

(27)

Oracle Application Serverカートリッジの 移行 3-1

3

Oracle Application Server

カートリッジの

カートリッジの

カートリッジの

カートリッジの

移行

移行

移行

移行

この章では、Oracle Application Server カートリッジの機能とそれに対応する機能とを比較 し、カートリッジをOracle Internet Application Server のインフラストラクチャに移行する 際の考慮点について説明します。

内容

内容

内容

内容

■ カートリッジ・タイプと対応するApache モジュール ■ PL/SQL の移行 ■ Perl の移行 ■ LiveHTML の移行

(28)

カートリッジ・タイプと対応する Apache モジュール

カートリッジ・タイプと対応する

カートリッジ・タイプと対応する

カートリッジ・タイプと対応する

カートリッジ・タイプと対応する Apache

Apache

Apache

Apache

モジュール

モジュール

モジュール

モジュール

次の表に、Oracle Application Server の各カートリッジ・タイプと、Oracle HTTP Server で それに対応するものを示します。

各アプリケーション・カートリッジの移行方法について、次の各項で説明します。

PL/SQL

PL/SQL

PL/SQL

PL/SQL

の移行

の移行

の移行

の移行

Oracle Application Server の PL/SQL カートリッジ・アプリケーションは、Oracle Internet Application Server の mod_plsql に移行できます。mod_plsql は、PL/SQL カートリッジ・ アプリケーションと同様に、Web 上での PL/SQL ベースのアプリケーションの構築と運用 をサポートします。

mod_plsql は Oracle Internet Application Server に同梱されており、Oracle HTTP Server モ ジュールとして実行されます。mod_plsql は、Oracle データベース内で PL/SQL ロジックを 実行するPL/SQL プログラムに、HTTP リクエストの処理を委任します。

PL/SQL アプリケーションを Oracle Application Server から Oracle Internet Application Server に移行する場合は、まず『Oracle Internet Application Server 8i mod_plsql の使用』 を読み、このモジュールの機能について理解しておくことをお薦めします。

次に示すOracle Application Server の PL/SQL カートリッジの機能に対するサポートは、 Oracle Internet Application Server の mod_plsql では変更されています。この項の続きの部 分で、これらの機能を使用するOracle Application Server アプリケーションの移行方法につ いて説明します。

表 表表

表 3-1 カートリッジ・タイプとカートリッジ・タイプとカートリッジ・タイプとカートリッジ・タイプと Apache モジュールモジュールモジュールモジュール

Oracle Application Serverのカートリッジ・のカートリッジ・のカートリッジ・のカートリッジ・ タイプ

タイプ タイプ

タイプ Oracle HTTP Serverで対応するもので対応するもので対応するもので対応するもの

Perl mod_perl

LiveHTML Apache SSI および OracleJSP

(29)

PL/SQLの移行

Oracle Application Serverカートリッジの 移行 3-3

ファイルのアップロードおよびダウンロード

ファイルのアップロードおよびダウンロード

ファイルのアップロードおよびダウンロード

ファイルのアップロードおよびダウンロード

次の表に、Oracle Application Server と Oracle Internet Application Server でサポートされ ているファイルのアップロードおよびダウンロード機能を示します。

ファイルの圧縮/ 解凍以外の Oracle Application Server の機能は、すべて Oracle Internet Application Server でサポートされている点に注意してください。Oracle Application Server で圧縮されたアップロード・ファイルが存在しても、手動でファイルを解凍する必要はあり ません。これらのファイルは、3-5 ページの「oas2ias ツールの使用方法」で説明する oas2iasファイル移行ツールにより、自動的に解凍されてOracle Internet Application Server ドキュメント表に非圧縮形式でアップロードされます。

Oracle Internet Application Server でサポートされているその他のファイルのアップロード 機能の詳細は、『Oracle Internet Application Server 8i mod_plsql の使用』を参照してくださ い。 表 表表 表 3-2 ファイルのアップロードおよびダウンロード機能の比較ファイルのアップロードおよびダウンロード機能の比較ファイルのアップロードおよびダウンロード機能の比較ファイルのアップロードおよびダウンロード機能の比較 ファイルのアップロードおよびダウンロード機能 ファイルのアップロードおよびダウンロード機能 ファイルのアップロードおよびダウンロード機能 ファイルのアップロードおよびダウンロード機能 Oracle Application Serverでのでのでのでの サポート サポート サポート サポート Oracle Internet Application Server でのサポート でのサポート でのサポート でのサポート 文字変換なしでロー・バイト・ストリームとして のファイルのアップロード/ ダウンロード はい はい LONG RAW 列型へのファイルのアップロード はい はい BLOB 列型へのファイルのアップロード いいえ はい CLOB 列型、NCLOB 列型へのファイルのアップ ロード いいえ はい ファイルのアップロード時にDAD ごとに表を指定 いいえ - WEBSYS スキーマにのみ アップロード はい アップロード/ ダウンロード時のファイルの圧縮 / 解凍 はい いいえ 1 回のフォーム送信につき複数のファイルのアップ ロード はい はい

(30)

PL/SQLの移行

アップロード・ファイルのドキュメント形式

アップロード・ファイルのドキュメント形式

アップロード・ファイルのドキュメント形式

アップロード・ファイルのドキュメント形式

Oracle Application Server の PL/SQL カートリッジと Oracle Internet Application Server の mod_plsql は、どちらもアップロード・ファイルをサポートしています。ただし、それぞれ 異なるドキュメント表スキーマを使用します。Oracle Application Server でアップロードさ れたファイルがあり、Oracle Internet Application Server に移行する場合は、oas2ias 移行 ツールを使用してファイルを変換する必要があります。

oas2ias ツールは、次の2 つの機能を実行します。

■ アップロードされた内容とその説明を維持したまま、Oracle Application Server の

表のデータをOracle Internet Application Server の表にマッピングする。

■ Oracle Application Server で圧縮された内容を Oracle Internet Application Server に

移行する前に解凍する。現行バージョンのOracle Internet Application Server では、 アップロード済みファイルの圧縮/ 解凍をサポートしていません(詳細は、前の項 を参照してください)。

oas2ias ツールは、OCI ライブラリを使用して C でインプリメントされています。このツー ルは、ows_content 表のすべての行を読み込み、ユーザーが指定したドキュメント表にその 内容と属性をすべて挿入します。

表3-3に、Oracle Internet Application Server のドキュメント表の列が Oracle Application Server から値を導出する方法を示します。

Oracle Application Server から取得した内容は、必ず Oracle Internet Application Server の ドキュメント表のBLOB_CONTENT 列に格納されます。このツールは、Oracle Internet Application Server のドキュメント表にロードされたデータが非圧縮データであることを確 認します。この確認のため、データが圧縮されている場合は(ows_attributes 表のエントリ のチェックによって検証される)、データはzlib ライブラリを使用して解凍され、その後 Oracle Internet Application Server のドキュメント表にロードされます。

表 表表

表 3-3 導出された列値導出された列値導出された列値導出された列値

Oracle Internet Application Serverのののの ドキュメント表の列

ドキュメント表の列 ドキュメント表の列 ドキュメント表の列

Oracle Application Serverのののの

table.columnの値の値の値の値 NAME ows_object.name MIME_TYPE ows_fixed_attrib.content_type DOC_SIZE ows_content.length DAD_CHARSET ows_fixed_attrib.character_se CONTENT_TYPE "BLOB" CONTENT NULL BLOB_CONTENT ows_content.content

(31)

PL/SQLの移行

Oracle Application Serverカートリッジの 移行 3-5

o

oo

oas2ias

as2ias

as2ias

as2ias

ツールの使用方法

ツールの使用方法

ツールの使用方法

ツールの使用方法

oas2ias ツールは、すべてのOracle Application Server のファイルを Oracle Internet Application Server 形式に変換するために、1 回だけ実行する必要があります。次のステップ を実行します。

1. Oracle Application Server のすべてのアップロード・ファイルの最新のバックアップが 作成済みであることを確認します。

2. Oracle Internet Application Server のドキュメント表を作成します。これは、任意の データベース・ユーザーで作成できます。

SQL> CREATE TABLE my_doc_table(

NAME VARCHAR2(128) UNIQUE NOT NULL, MIME_TYPE VARCHAR2(128),

DOC_SIZE NUMBER, DAD_CHARSET VARCHAR2(128), LAST_UPDATED DATE,

CONTENT_TYPE VARCHAR2(128), CONTENT LONG RAW,

BLOB_CONTENT BLOB);

3. 環境を検証します。

■ Oracle Application Server バージョン 4.0.7.1 以降

■ Oracle Internet Application Server リリース 1.0.0 以降 ■ Oracle8i R8.1.x

■ ORACLE_HOME に Oracle Internet Application Server の ORACLE_HOME が設定

されていること

■ (Windows NT のみ)%ORACLE_HOME%¥bin がシステム・パスに含まれている

こと

■ (UNIX のみ)$ORACLE_HOME/bin が PATH 環境変数に含まれていること ■ (UNIX のみ)LD_LIBRARY_PATH 環境変数に $ORACLE_HOME/lib および

(32)

PL/SQLの移行

4. Oracle Application Server データベース("WEBSYS" スキーマが存在している場所)と Oracle Internet Application Server データベース(my_doc_table 表を持つ Oracle Internet Application Server ユーザー・スキーマが存在している場所)の TNS 別名を作成しま す。TNS 別名を $ORACLE_HOME/network/admin/tnsnames.ora に格納します。この ファイル内のTNS 別名の形式は、次のとおりです。

<alias> =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(Host = <hostname>) (Port = <port_number>))

(CONNECT_DATA = (SID = <sid>)) )

TNS 別名の詳細は、ご使用のデータベースのドキュメントを参照してください。

5. Oracle Internet Application Server 環境の ORACLE_HOME 内の bin ディレクトリに 入っているoas2ias ツールを実行します。このツールにより、次のパラメータの入力プ ロンプトが表示されます。

次に、oas2ias の実行例を示します。

Welcome to the OAS to iAS migration Utility Please enter the following parameters: WEBSYS password: manager

OAS database connect string (<ENTER if local database>: orc8 iAS database user: oracle

iAS database user's password: welcome

iAS database connect string <ENTER if local database>: orc8 iAS doc table: my_doc_table

Transferred file : C:¥TEMP¥upload.htm Length of file : 422

Transferred file : C:¥Tnsnames.ora パラメータ

パラメータパラメータ

パラメータ 説明説明説明説明

websys_password "WEBSYS" ユーザーのパスワード。

websys_connstr Oracle Application Server データベースの接続文字列。

ias_user_name ステップ2 で作成した Oracle Internet Application Server のドキュ メント表が含まれているスキーマのデータベース・ユーザー名。 ias_password <ias_user_name> のパスワード。

ias_connstr mod_plsql データベースの接続文字列。

ias_doc_table ステップ2 で作成した Oracle Internet Application Server のドキュ メント表の名前。

(33)

PL/SQLの移行

Oracle Application Serverカートリッジの 移行 3-7

Length of file : 2785

Transferred file : C:¥rangan¥mails1.htm Length of file : 717835

Freeing handles ...

6. これにより、Oracle Internet Application Server のドキュメント表へのファイル変換が 完了し、Oracle Internet Application Server の mod_plsql を使用してアクセス可能にな ります。

カスタム認証

カスタム認証

カスタム認証

カスタム認証

カスタム認証は、Oracle Application Server で、自ら(つまりアプリケーション内で)アク セスを制御するアプリケーションで使用されます。アプリケーションは、データベース・レ ベルではなく、アプリケーション・レベルでユーザーを認証します。

mod_plsql ではカスタム認証をサポートしています。詳細は、『Oracle Internet Application Server 8i mod_plsql の使用』を参照してください。

位置パラメータの受渡し方式

位置パラメータの受渡し方式

位置パラメータの受渡し方式

位置パラメータの受渡し方式

Oracle Application Server の PL/SQL カートリッジでは、位置パラメータの受渡し方式をサ ポートしています。この機能はOracle Internet Application Server ではサポートされていな いため、使用できません。Oracle Internet Application Server の mod_plsql でサポートされ ているパラメータの受渡し方法の詳細は、『Oracle Internet Application Server 8i mod_plsql の使用』を参照してください。

SQL

SQL

SQL

SQL

ファイルの実行

ファイルの実行

ファイルの実行

ファイルの実行

データベースに格納されているPL/SQL プロシージャの実行に加え、Oracle Application Server の PL/SQL カートリッジでは、ファイル・システムの PL/SQL ソース・ファイルも 実行できます。ソース・ファイルには、ファンクションまたはプロシージャを定義しない無 名PL/SQL ブロックが含まれています。この機能により、ユーザーは PL/SQL 文をデータ ベースに格納しなくても実行できます。この機能は、編集するたびにプロシージャをデータ ベースにリロードする必要がないため、PL/SQL コードのプロトタイプの作成時に役立ちま す。

この機能は、Oracle Internet Application Server ではサポートされていません。ユーザーは、 無名ブロックに名前を割り当て、データベースでストアド・プロシージャとしてコンパイル する必要があります。

図 2-1  Oracle Application Server のカートリッジ・インフラストラクチャ のカートリッジ・インフラストラクチャ のカートリッジ・インフラストラクチャ のカートリッジ・インフラストラクチャ
図 図 図
表 3-3 に、Oracle Internet Application Server のドキュメント表の列が Oracle Application
表 3-4 に、Oracle Application Server に付属している Perl モジュールを示します。これらの モジュールは標準の Oracle Internet Application Server には含まれていません。そのため、
+3

参照

関連したドキュメント

Windows Server 2012 Windows Server 2016 Red Hat Enterprise Linux 6 Red Hat Enterprise Linux 7 VMware vSphere 6 VMware vSphere 6.5 VMware vSphere 6.7 Oracle VM 3 UNIX サーバ.

Microsoft/Windows/SQL Server は、米国 Microsoft Corporation の、米国およびその

MPIO サポートを選択すると、 Windows Unified Host Utilities によって、 Windows Server 2016 に含まれている MPIO 機能が有効になります。.

ESET Server Security for Windows Server、ESET Mail/File/Gateway Security for Linux は

Another new aspect of our proof lies in Section 9, where a certain uniform integrability is used to prove convergence of normalized cost functions associated with the sequence

このマニュアル全体を読んで、Oracle Diagnostics Pack に同梱の Oracle Performance Manager、Oracle Capacity Planner、Oracle TopSessions および Oracle Event

・Microsoft® SQL Server® 2019 Client Access License (10 User)ライセンス証書 オープン価格. オープン価格 Microsoft SQL

・M.2 Flash モジュール専用RAID設定サービス[PYBAS1SM2]とWindows Server 2022 Standard(16コア/Hyper-V)[PYBWPS5H]インストール/Windows Server 2019