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

つめのリクエスト つめのリクエスト つめのリクエスト つめのリクエスト

Last-Modified

期限方式を使用する 2 つめのリクエスト つめのリクエスト つめのリクエスト つめのリクエスト

PL/SQL Webアプリケーションでのキャッシングの使用

5. HTMLはmod_plsqlに戻されます。

6. mod_plsqlは、次のリクエストに備えてキャッシュ可能なコンテンツをファイル・シ ステムに保存します。

7. Oracle HTTP Serverはクライアントのブラウザにレスポンスを送信します。

図図

図図 8-3 期限方式期限方式期限方式期限方式

PL/SQL Webアプリケーションでのキャッシングの使用

a. この差が有効期限内であれば、キャッシュされたコピーはまだ新しいものであるた め、データベースとの通信なしに使用されます。このキャッシュされたコンテンツ はブラウザに直接ストリーム・バックされます。

b. この差が有効期限内でない場合、キャッシュされたコピーは古くなっています。

mod_plsqlはPL/SQLプロシージャを呼び出して新しいコンテンツを生成しま す。さらに、このプロシージャは期限ベースのキャッシングを再び使用するかどう かを決定します。これを使用する場合、この新しいコンテンツの有効期限を決定し ます。新しく生成されたコンテンツはブラウザに直接ストリーム・バックされます。

図図

図図 8-4 期限方式期限方式期限方式期限方式-2番目のリクエスト番目のリクエスト番目のリクエスト番目のリクエスト

Oracle9iAS Application Server

Oracle HTTP Server

ファイル・

システム ブラウザ

ブラウザ

Oracle データベース

ブラウザ

ブラウザでの ユーザー・レベルの

キャッシング

PL/SQL Web Toolkit

アプリケーション

2b

2a

mod_plsql

2b

PL/SQL Webアプリケーションでのキャッシングの使用

PL/SQL Web アプリケーションでのシステム アプリケーションでのシステム アプリケーションでのシステム アプリケーションでのシステム / ユーザーレベルのキャッシング ユーザーレベルのキャッシング ユーザーレベルのキャッシング ユーザーレベルのキャッシング

PL/SQLプロシージャは、生成されたコンテンツがシステムレベルかユーザーレベルかを判

断します。これにより、複数のユーザーが同じコンテンツを参照している場合、PL/SQL ゲートウェイ・キャッシュによる重複ファイルの保存をできるだけ少なくできます。これは 次によって決定されます。

システムレベルシステムレベルシステムレベルシステムレベル・コンテンツでは、プロシージャは文字列SYSTEMをキャッシング・レ ベル・パラメータとしてowa_cacheファンクションに渡します(検証モデルには set_cache、期限モデルにはset_expires)。これはキャッシュを共有するすべての ユーザーに対して行われます。

システムレベル・キャッシングを使用すと、ファイル・システム上のスペースとシステ ム上のすべてのユーザーが費やす時間の両方をセーブできます。これについての一例は、

アプリケーションを使用するすべてのユーザーを対象にしたコンテンツを生成するアプ リケーションです。システムレベル設定でコンテンツをキャッシングすることにより、

コンテンツの1つのコピーがファイル・システムにキャッシュされます。さらに、コン テンツがキャッシュからのディレクトリにサーブされているため、そのシステムの各 ユーザーは利益を得ることができます。

ユーザーレベルユーザーレベルユーザーレベルユーザーレベル・コンテンツに対しては、文字列USERをキャッシング・レベルのパラ メータとして渡します。ログインしている特定のユーザーに対して行われます。保存さ れたキャッシュはそのユーザー独自のものです。そのユーザーのみがキャッシュを使用 できます。ユーザーのタイプは認証モードにより決定されます。異なるユーザーのタイ プについては、次の表を参照してください。

.

たとえば、PL/SQL Webアプリケーションをカスタマイズしているユーザーが存在しない場 合、出力をシステムレベルのキャッシュに保存できます。システムの各ユーザーに1つのコ ピーのみが存在します。キャッシュは複数のユーザーによって使用されるため、ユーザー情 報は使用されません。

ただし、ユーザーがアプリケーションをカスタマイズしている場合、ユーザーレベル・

キャッシングはそのユーザー専用に保存されます。すべての他のユーザーはシステム・レベ ル・キャッシュを使用します。ユーザーレベル・キャッシュ・ヒットおいては、ユーザー情 報が基準になります。ユーザーレベルのキャッシュは、常にシステム・レベルのキャッシュ をオーバーライドします。

表表

表表 8-5 認証モードによって決定されるユーザーのタイプ認証モードによって決定されるユーザーのタイプ認証モードによって決定されるユーザーのタイプ認証モードによって決定されるユーザーのタイプ 認証モード

認証モード 認証モード

認証モード ユーザーのタイプユーザーのタイプユーザーのタイプユーザーのタイプ Single Sign On(SSO) 軽量ユーザー

Basic データベース・ユーザー

Custom リモート・ユーザー

PL/SQL Webアプリケーションでのキャッシングの使用

PL/SQL Web Toolkit ファンクション( ファンクション( ファンクション( ファンクション( owa_cache パッケージ) パッケージ) パッケージ) パッケージ)

検証方式または期限方式のどちらを使用するかによって、呼び出すowa_cacheのファンク ションが決定します。

owa_cacheパッケージは、特別なキャッシング・ヘッダーおよび環境変数を設定し、取得 するためのプロシージャを含んでいます。これを使用すると、開発者はPL/SQL Gateway キャッシュをより簡単に行うことができます。このパッケージは常にデータベースにインス トールされます。

次のファンクションは、呼び出されるプライマリ・ファンクションです。

表 表 表

表 8-6 プライマリプライマリプライマリプライマリowa_cacheファンクションファンクションファンクションファンクション owaファンクションファンクションファンクションファンクション 目的目的目的目的 owa_cache.set_cache

(p_etag IN varchar2, p_level IN varchar2)

検証モデル - ヘッダーを設定。

p_etagパラメータは生成されたコンテンツをタ

グ付け

p_levelパラメータは使用するキャッシングのレ

ベル

owa_cache.set_not_modified 検証モデル - キャッシュされたコンテンツを使用する

ようにmod_plsqlに通知するためのヘッダーを設定

する。 検証ベースのキャッシュがヒットする場合のみ

使用。

owa_cache.get_level 検証モデル - キャッシング・レベルUSERまたは

SYSTEMを取得する。 キャッシュがヒットしない場合は

NULLを返す。

owa_cache.get_etag 検証モデル - キャッシュされたコンテンツに関連する

タグを取得する。キャッシュがヒットしない場合は

NULLを返す。

owa_cache.set_expires(

p_expires IN number, p_level IN varchar2)

期限モデル - ヘッダーを設定。

p_expiresパラメータはコンテンツが有効な時間

数(分)。

p_levelパラメータは使用するキャッシングのレ

ベル。

その他のOracle HTTP Serverディレクティブ

その他の その他の その他の

その他の Oracle HTTP Server ディレクティブ ディレクティブ ディレクティブ ディレクティブ

表8-7では、設定に対して適切にチューニングされる必要のあるOracle HTTP Serverディレ クティブをリストしています。表8-7にリストされているディレクティブの設定を、システ ムに適した値に調整します。

表 表 表

表 8-7 デフォルト設定デフォルト設定デフォルト設定デフォルト設定 ディレクティブ ディレクティブ ディレクティブ

ディレクティブ デフォルト値デフォルト値デフォルト値デフォルト値

KeepAlive On

KeepAliveTimeout 15(秒)

MaxClients 150

MaxKeepAliveRequests 100 MaxRequestsPerChild 10

MaxSpareServers 10

MinSpareServers 5

StartServers 5

関連項目 関連項目 関連項目 関連項目:

第5章「Oracle HTTP Serverの最適化」

『Oracle9i Application Server Oracle HTTP Server管理ガイド』の第3 章「サーバー・プロセスの管理」および第4章「ネットワーク接続の 管理」

その他のOracle HTTP Serverディレクティブ

A

Oracle9iAS パフォーマンス・メトリック パフォーマンス・メトリック パフォーマンス・メトリック パフォーマンス・メトリック

この付録には、Oracle9iASのパフォーマンスを分析するときに役立つメトリックの一覧が記 載されています。メトリックは、Oracle HTTP Server、Oracle9iAS Containers for J2EE

(OC4J)およびPortalなど、いくつかの領域に明確に分かれています。この章の各表には、

対応するDMSメトリック表に含まれるメトリックが一覧表示されています。

この付録の内容は次のとおりです。

Oracle HTTP Serverメトリック

JVMメトリック

JDBCメトリック

J2EEアプリケーション・メトリック - OC4Jメトリック

JSPメトリック

EJBメトリック

Portalメトリック

JServメトリック

Oracle HTTP Serverメトリック

Oracle HTTP Server メトリック メトリック メトリック メトリック

表A-1、表A-2、表A-3の各表は、Oracle HTTP Serverメトリックを説明したものです。

メトリック表の名前はohs_serverです。

集計モジュール・メトリック 集計モジュール・メトリック 集計モジュール・メトリック 集計モジュール・メトリック

表 表 表

表 A-1 HTTP Serverメトリック(メトリック(メトリック(メトリック(ohs_server)))) メトリック

メトリック メトリック

メトリック 説明説明説明説明 単位単位単位単位

handle.maxTime モジュール・ハンドラで費やされた最大時間 usec

handle.minTime モジュール・ハンドラで費やされた最小時間 usecs

handle.avg モジュール・ハンドラで費やされた平均時間 usecs

handle.active 現在ハンドル処理フェーズにある子サーバー threads

handle.time モジュール・ハンドラで費やされた合計時間 usecs

handle.completed ハンドル処理フェーズが完了した回数 ops

request.maxTime HTTPリクエストのサービスに必要な最大時間 usecs

request.minTime HTTPリクエストのサービスに必要な最小時間 usecs

request.avg HTTPリクエストのサービスに必要な平均時間 usecs

request.active 現在リクエスト処理フェーズにある子サーバー threads

request.time HTTPリクエストのサービスに必要な合計時間 usecs

request.completed 完了したHTTPリクエストの数 ops

connection.maxTime 任意のHTTP接続のサービスに費やされた最大時間 usecs

connection.minTime 任意のHTTP接続のサービスに費やされた最小時間 usecs

connection.avg HTTP接続のサービスに費やされた平均時間 usecs

connection.active 現在開いている接続の数 threads

connection.time HTTP接続のサービスに費やされた合計時間 usecs

表 表 表

表 A-2 Apache/Modulesメトリックメトリックメトリックメトリック メトリック

メトリック メトリック

メトリック 説明説明説明説明 単位単位単位単位

numMods.value ロードされたモジュールの数