ヘッダーをスキップ

Oracle HTTP Server 管理者ガイド
10g(10.1.3.1.0)

B31847-01
目次
目次
索引
索引

戻る 次へ

8 mod_oradavの構成と使用

この章では、オーサリングとバージョニングの概念と、mod_oradavモジュールの構成および使用方法について説明します。mod_oradavモジュールにより、OraDAVを使用してWebブラウザやWebDAVクライアントからOracle Databaseの内容にアクセスできます。

内容は、次のとおりです。

OraDAVの概要

OraDAVという用語は、mod_oradavモジュールを介して使用できる機能を指します。mod_oradavモジュールは、WebDAV仕様の実装であるmod_dav実装の拡張版です。この項では、次の概念について説明します。

WebDAV

WebDAVは、分散オーサリングおよびバージョニングをサポートするHTTP 1.1のプロトコル拡張機能です。WebDAVを使用すると、インターネットは透過的な読取りおよび書込み手段となり、その内容をチェックアウトおよび編集し、URLアドレスにチェックインできます。

WebDAVにより、Webサイト作成者間でのコラボレーションが可能になります。また、WebDAVは、任意の(Webサイトに限定されない)コンテンツ階層への汎用読取り/書込みアクセス・プロトコルとしても機能します。WebDAVを使用すると、コンテンツをインターネット・サービス・プロバイダ(ISP)から提供されたURLに保存できます。コンテンツには各種デバイスからアクセスでき、必要に応じて変更可能です。

WebDAVは、最初はInternet Engineering Task Force(IETF)規格とされていました。WebDAVの最初のフェーズはRFC 2518で指定され、情報階層の管理と、WebDAVドキュメントのロック、読取り、書込みおよびプロパティの問合せの基本形を提供します。WebDAVについては現在も作業が進行中であり、Web経由のコンテンツ管理に関連する問題の解決に重点が置かれています。これには、WebDAVの認証と認可(アクセス制御)、バージョニング、バインディング、順序付けられたコレクションおよび問合せ(DAV拡張検索およびロケーティング)が含まれます。

Microsoft Webフォルダは、Windows 2000以降のバージョン(Internet Explorer 5.0以上を使用)でのWebDAVクライアントです。Office 2000およびOffice XPアプリケーションとIISサーバーではWebDAVがサポートされています。つまり、Microsoft Officeアプリケーションを起動してURLを指定し、コンテンツを編集して元のURLに保存できるということです。また、WebDAVにはJavaクライアント(DAV Explorerなど)、オープン・ソース・ツール(CadaverやSitecopyなど)およびApple GUIツール(Goliath)などもあります。


注意

WebDAVクライアントが最初にOracle HTTP Serverに接続する場合は、接続用URLにServerName文字列全部(httpd.confファイルに指定)を使用する必要があります。サーバー名の省略形を使用しないでください。

たとえば、ServerName値がserver1.acme.comの場合は、http://server1:7778などの省略形ではなく文字列http://server1.acme.com:7778を使用してOracle HTTP Serverに接続します。

省略形を使用しても接続に成功することはありますが、COPYおよびMOVE操作は実行に失敗し、BAD_GATEWAYエラーが生成されます。 


mod_dav

mod_davは、WebDAV仕様のApache Software Foundation固有の実装です。

mod_oradav

mod_oradavは、mod_davの実装の拡張版であり、Oracle HTTP Serverと統合されているOracleモジュール(C言語で記述されたOCIアプリケーション)です。このモジュールでは、ローカル・ファイルおよびOracle Databaseに対する読取り/書込みアクティビティが実行されます。Oracle Databaseには、mod_oradavがWebDAVアクティビティをデータベース・アクティビティにマップするためにコールするOraDAVドライバ(ストアド・プロシージャ・パッケージ)が必要です。基本的に、WebDAVクライアントはmod_oradavを使用してOracle Databaseに接続し、内容の読取りと書込み、および各種スキーマ内のドキュメントの問合せとロックを実行できます。

Oracle HTTP Serverの標準ディレクティブを使用して、Oracle Databaseを使用するようにmod_oradavを構成できます。mod_oradavでは、コンテンツ管理タスクを実行するために、他のモジュール・コード(mime_magicなど)をすぐに活用できます。ほとんどのWebDAV処理アクティビティでは、コンテンツ・プロバイダとの間でコンテンツをストリーム化する必要があり、mod_oradavではOracle HTTP Server内でOCIストリーム・ロジックを直接使用します。

OraDAV

OraDAVとは、Oracle Application Serverユーザーがmod_oradavを介して使用できる機能セット全体を指します。OraDAVには次の固有の用語があります。

OraDAVのアーキテクチャ

OraDAVは、Oracle HTTP Server内のmod_oradavが、1つ以上のOracle Databaseの1つ以上のスキーマのコンテンツへのアクセスを提供するアーキテクチャに合せて使用されます。

図8-1は、単純なアーキテクチャを示しています。

図8-1    OraDAVのアーキテクチャ


画像の説明

図8-1は、Microsoft WebフォルダなどのWebDAVクライアントが、Oracle HTTP ServerにHTTPリクエストを渡すところを示しています。リクエストが(Oracle Databaseではなく)ファイル・システムに格納されているコンテンツに対するものである場合、mod_oradavでアクセスが処理されます。リクエストがOracle Databaseに格納されているコンテンツに対するものである場合、OraDAV APIでアクセスが処理されます。

OraDAV APIには、ファイル・システムにおけるmod_oradavの実行と同じ機能があります。OraDAV APIでは、次のHTTPメソッドがサポートされます。

OraDAV APIでは、共有ロックと排他ロック、基本的なDAVプロパティの取得、サーバー定義のライブ・プロパティまたはクライアント定義のデッド・プロパティの定義と取得がサポートされます。COPYMOVEDELETEなど、集合ベースの演算全体を、OraDAVドライバの単一コールで実行できます。

OraDAVユーザー

OraDAVを直接使用する主なユーザーは、Oracle HTTP Server管理者とOracle Databaseのデータベース管理者です。エンド・ユーザーは、WebブラウザまたはWebDAVクライアント・ツールを通じて、OraDAVと間接的に対話するのみです。

OraDAVの管理には、Web管理者およびデータベース管理者としてのタスクが含まれます。

OraDAVの使用モデル

OraDAVの使用には、次のアクティビティを任意に組み合せることができます。

OraDAVの構成パラメータ

OraDAVは、主に、初期化中にOracle HTTP Serverインスタンスによって使用されるhttpd.confファイル内のパラメータを使用して構成します。構成パラメータには、すべてのOraDAVドライバに必須のものと、ドライバ固有のものがあります。

Oracle Application Serverをインストールすると、OraDAVのすべての必須パラメータは、WebブラウザやWebDAVクライアントからOracle Databaseの内容にアクセスできるように設計された値に設定されます。デフォルト値が要件を満たしていない場合は、後で必須パラメータの値を変更し、オプションのパラメータの値を指定できます。httpd.confでOraDAV構成のサポートに使用されるパラメータは、DAVDAVParamで始まります。これらのパラメータは<Location>コンテナ・ディレクティブで指定され、次の機能を提供します。

DAVパラメータは、URLの位置でDAVが使用可能であることを示します。DAVキーワードの後に、次のいずれかの値を指定します。

DAVParamパラメータは、名前/値ペアの指定に使用します。必須のペアは、Oracle HTTP ServerからOracle Databaseに接続できるようにするペアです。これには、名前のOraServiceOraUserおよびOraPasswordまたはOraAltPasswordが含まれます。

例8-1に、ローカル・システム上のファイルにアクセスするための構成を示します。この例では、Webサーバーのドキュメント・ディレクトリ(デフォルトではhtdocs)のサブディレクトリmyfilesと階層内のmyfilesのすべてのサブディレクトリを、DAVが使用可能なディレクトリとして指定します。myfilesまたは階層内のすべてのサブディレクトリには、シンボリック・リンクを定義しないように注意してください。

例8-1    構成パラメータ: ファイル・システムへのアクセス

<Location /myfiles>
  DAV On
</Location>

例8-2に、Oracle Application Server Portalを介してコンテンツにアクセスするための構成を示します。OracleAS PortalをOracle Application Serverにインストールした後で、OracleAS Portalスキーマを指す<Location>コンテナ・ディレクティブをOracle HTTP Server構成ファイルに移入する必要があります。この例では、ロケーション/portalがOraDAV対応になり、(適切な値が移入されると)OracleAS Portalスキーマに接続されるので、ユーザーはWebDAVクライアントを使用してOracleAS Portalデータにアクセスできます。

例8-2    構成パラメータ: Portalへのアクセス

<Location /portal>
  DAV Oracle
  DAVParam ORACONNECT dbhost:dbport:dbsid
  DAVParam ORAUSER portal_schema
  DAVParam ORAPASSWORD portal_schema_password
  DAVParam ORAPACKAGENAME portal_schema.wwdav_api_driver
</Location>

各OraDAVドライバでは、DAVParamメカニズムを使用して、ドライバ固有の設定を作成できます。すべてのDAVParamの名前/値ペアは、OraDAVドライバに渡されます。OraDAVパラメータのみでなく、DAVDepthInfinityなどの特定のDAVパラメータを指定するかどうかも考慮する必要があります。

関連項目

「DAVのディレクティブ」 

表8-1に、各OraDAVパラメータ、そのパラメータが必須であるかどうか、およびそのデフォルト値を示します。ORAGetSourceはファイル・システムへのアクセスにのみ適用され、他のパラメータはOracleAS Portalドライバやその他のシステム(ファイル・システム以外)へのアクセスにのみ適用されます。

表8-1    OraDAVのパラメータ 
名前  必須/オプション  デフォルト値 

ORAAllowIndexDetails 

オプション 

FALSE 

ORAAltPassword 

必須。

ORAPasswordまたはORAAltPasswordのいずれか一方を指定します。両方は指定できません。 

(なし) 

ORACacheDirectory 

オプション 

(なし) 

ORACacheMaxResourceSize 

オプション 

(なし) 

ORACachePrunePercent 

オプション 

25 

ORACacheTotalSize 

オプション。ORACacheTotalSizeを使用する場合は、ORACacheDirectoryが必須です。それ以外の場合は、このパラメータを指定しないでください。 

(なし) 

ORAConnect 

必須。

ORAServiceORAConnectまたはORAConnectSNを指定します。1つのみ指定できます。 

(なし) 

ORAConnectSN 

必須。

ORAServiceORAConnectまたはORAConnectSNを指定します。1つのみ指定できます。 

(なし) 

ORAContainerName 

必須 

(なし) 

ORAException 

オプション 

NORAISE 

ORAGetSource 

オプション 

(なし) 

ORALockExpirationPad 

オプション 

0(秒) 

ORAPackageName 

オプション 

ORDSYS.DAV_API_DRIVER 

ORAPassword 

必須。

ORAPasswordまたはORAAltPasswordのいずれか一方を指定します。両方は指定できません。 

(なし) 

ORARootPrefix 

オプション 

(なし) 

ORAService 

必須。

ORAServiceORAConnectまたはORAConnectSNを指定します。1つのみ指定できます。 

(なし) 

ORATraceEvents 

オプション 

(なし) 

ORATraceLevel 

オプション 

ORAUser 

必須 

(なし) 


注意

OraDAVパラメータは、すべてOracle HTTP ServerからORAPackageNameパッケージ内のルーチンにcontextパラメータの一部として渡されます。Oracle HTTP Serverでは、キーは大文字(ORAUSERなど)ですが、値は小文字(scottなど)です。 


ORAAllowIndexDetails

OraDAVを使用できないOracle HTTP Server環境では、mod_dav自体はHTTPのGETリクエストにレスポンスを返しません。かわりに、GETリクエストには通常のOracle HTTP Serverのメカニズムを使用してレスポンスが返されます。ただし、すべてのコンテンツがOracle Databaseにある場合、GETリクエストへのレスポンスには通常のOracle HTTP Serverメカニズムを使用できないため、OraDAVがGETリクエストにレスポンスを返す必要があります。

ORAAllowIndexDetailsパラメータは、DAVコレクションに対するGETリクエストが実行され、そのコレクション(ディレクトリ)内でindex.htmlファイルが見つからない場合に、OraDAVがレスポンスを返す方法を制御します。典型的なOracle HTTP Server環境では、別のモジュールが制御を引き継ぎ、そのコレクション内のリソース(ファイル)の索引を表すクライアントHTMLを自動的に生成してレスポンスを返します。

OraDAVが使用可能なOracle HTTP Serverでは、コレクションに対するGETリクエストにレスポンスを返すときに、同様のアクションが実行されます。ORAAllowIndexDetailsTRUEに設定されている場合、生成される索引にはDescription列(各リソースの詳細情報へのリンク付き)が含まれています。

デフォルト値はFALSEですが、この場合、生成される索引にはDescription列は表示されません。また、URLに?detailsが使用されている場合は無視され、URLのコンテンツが返されます。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

オプション 

値 

TRUE/FALSE 

デフォルト 

FALSE 

ORAAltPassword

ORAUserパラメータで指定したユーザーに関連するパスワードを指定しますが、このパスワードはbase-64エンコード文字列です。ORAAltPasswordパラメータでは、パスワードがエンコードされない平文としてパラメータに表示されることを希望しない場合に、代替パスワードを提供します。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

ORAPasswordを指定しない場合は必須 

値 

(文字列) 

デフォルト 

(なし) 

ORAPasswordパラメータを指定しないと、パスワードにはORAAltPasswordパラメータが使用されます。

ORACacheDirectory

ディスク・キャッシュ操作に使用するディレクトリを指定します。このパラメータを指定しないと、OraDAV操作のディスク・キャッシュは実行されません。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

オプション 

値 

(文字列) 

デフォルト 

(なし) 

指定されたディレクトリが存在し、Oracle HTTP Serverによって読取り可能である必要があります。ただし、通常のGETリクエストでは表示できないようにする必要があります。(このディレクトリが通常のGETリクエストで表示できると、キャッシュ・ディレクトリにアクセスするユーザーがセキュリティ対策を迂回する可能性があります。)

ほとんどのUNIXロック・メカニズムでは警告が発せられるため、NFSマウント済ディレクトリは指定しないでください。このディレクトリは、最終アクセス時刻がサポートされているファイル・システム上に置く必要があります。Windowsシステムの場合、これはFATではなくNTFSでフォーマットされたパーティションを使用することを意味します。

キャッシュ・ディレクトリをキャッシュ以外の目的に使用しないでください。キャッシュ・ディレクトリ内のファイルは、削除されることがあります。

ORACacheDirectoryパラメータを使用する場合は、ORACacheTotalSizeパラメータも使用する必要があります。

関連項目

「ディスク・キャッシュとOraDAVの併用」 

ORACacheMaxResourceSize

ディスク・キャッシュ操作用のキャッシュ可能な最大リソース・サイズを指定します。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

オプション 

値 

(整数、オプションの単位文字列) 

デフォルト 

(なし) 

例8-3に、ORACacheMaxResourceSizeの設定方法を示します。

例8-3    OraCacheMaxResourceSizeパラメータ

DAVParam ORACacheMaxResourceSize 1024KB

例8-3の設定では、OraDAVは1MBを超えるリソースをキャッシュできません。これにより、Web管理者は大きなメディア・ファイルによってキャッシュが独占されるのを防ぐことができます。ただし、キャッシュするファイルが大きな場合のほうが、パフォーマンスは向上します。

整数の後にKB(キロバイト)またはMB(メガバイト)を指定できます。整数の後に単位を指定しない場合、デフォルトの単位はバイトです。

関連項目

「ディスク・キャッシュとOraDAVの併用」 

ORACachePrunePercent

キャッシュがいっぱいになった時点で解放するディスク・キャッシュ使用率を指定します。ディスク・キャッシュがいっぱいになると、キャッシュのディスク使用率がORACachePrunePercentの値に減少するまで、キャッシュ内の最も古いファイルから順に削除(プルーニング)されます。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

オプション 

値 

整数(1〜100) 

デフォルト 

25 

関連項目

「ディスク・キャッシュとOraDAVの併用」 

ORACacheTotalSize

ディスク・キャッシュ操作に使用するキャッシュのサイズを指定します。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

ORACacheDirectoryを指定しない場合はオプション 

値 

(整数、オプションの単位文字列GBまたはMB)最大値は4GBです。 

デフォルト 

(なし) 

例8-4に示すように、整数の後にMB(メガバイト)またはGB(ギガバイト)を指定できます。整数の後に単位を指定しない場合、デフォルトの単位はバイトです。

例8-4    ORACacheTotalSizeパラメータ

DAVParam ORACacheTotalSize 1GB

ORACacheDirectoryパラメータを使用する場合は、ORACacheTotalSizeパラメータも使用する必要があります。

ORACacheTotalSize値は、Webサイトの重要な部分、または最もアクセス頻度の高い全ファイルに25%以上の領域を追加したもののうち、どちらかを十分に保持できる大きさにする必要があります。値が小さすぎる場合、BLOBデータをファイル・システムに書き込み、新しいキャッシュ・リクエストを受信するためにファイルをただちに削除するという追加の処理が発生するため、全体のパフォーマンスが低下します。

実際にディスク・キャッシュに使用される領域は、ORACacheTotalSize値を超えて最大ORACacheMaxResourceSize値に達する場合があります。また、ファイル・システムのブロック・サイズが原因となって、キャッシュが使用するディスク領域がORACacheTotalSize値を超えることのないよう注意してください。

関連項目

「ディスク・キャッシュとOraDAVの併用」 

ORAConnect

接続先のOracle Databaseを指定します。値は次の形式で指定する必要があります。

database-host:database-port:database-sid

例8-5に、ORAConnectパラメータの使用方法を示します。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

ORAServiceまたはORAConnectSNを指定しない場合は必須 

値 

(文字列) 

デフォルト 

(なし) 

例8-5    ORAConnectパラメータ

DAVParam ORAConnect my-pc.acme.com:1521:mysid

ORAConnectパラメータを使用すると、tnsnames.oraファイルに含まれていないデータベースに接続できます。

ORAConnectORAServiceまたはORAConnectSNのいずれかを指定します。1つのみ指定できます。

ORAConnectSN

接続先のOracle Databaseを指定します。値は次の形式で指定する必要があります。

database-host:database-port:database-service-name

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

ORAServiceまたはORAConnectを指定しない場合は必須 

値 

(文字列) 

デフォルト 

(なし) 

ORAConnectSNパラメータを使用すると、例8-6に示すように、tnsnames.oraファイルに含まれていないデータベースに接続できます。

例8-6    ORAConnectSNパラメータ

DAVParam ORAConnectSN my-pc.acme.com:1521:myservice

ORAServiceORAConnectまたはORAConnectSNのいずれかを指定します。1つのみ指定できます。

ORAContainerName

ORAUserパラメータで指定されたスキーマ内には、コンテナが存在する必要があります。ORAContainerNameパラメータでは、そのロケーションで使用するコンテナの名前を指定します。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

必須 

値 

(最大20文字の任意の有効な文字列) 

デフォルト 

(なし) 

ORAException

PL/SQLパッケージで例外が発生した場合、Oracle HTTP Serverログ・ファイルerror_logにPS/SQLスタック・ダンプを書き込みます。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

オプション 

値 

NORAISEまたはRAISE 

デフォルト 

NORAISE 


警告

このパラメータは、PL/SQLパッケージでの問題のデバッグに使用します。ただし、このパラメータは、大量のディスク領域を使用し、システムのパフォーマンスを低下させる場合があります。  


ORAGetSource

ファイル・システムへのアクセスにのみ適用されます。このパラメータでは、1つ以上のファイル拡張子を指定して、実行するのではなく編集のために開くファイルのタイプを識別します。ファイル拡張子にはピリオド(.)を含めます。また、カンマを使用してファイル拡張子を区切ります。次に例を示します。

".htm, .html, .jsp1, .jsp2"

カテゴリ   

適用対象 

ファイル・システムへのアクセス 

必須/オプション 

オプション 

値 

(二重引用符で囲まれた文字列) 

デフォルト 

(なし) 

ORAGetSourceパラメータを使用すると、通常はGET操作の結果として実行されるファイルを編集のために開くことができます。


注意

.jspファイルおよび.sqljspファイルはデフォルトで編集用に開かれるため、ORAGetSourceパラメータで指定する必要はありません。 


ORALockExpirationPad

待機時間の長いネットワーク環境で、Microsoft Officeにおけるロックのリフレッシュを調整するために指定します。Microsoft Officeは、ロックが期限切れになる直前にDAVリソースのロックをリフレッシュしようとします。ただし、Microsoft OfficeクライアントとDAVサーバー間にネットワークの輻輳があると、リフレッシュ・リクエストの着信が遅れ、ロックが期限切れになった後に着信することがあります。

OraDAVは、期限切れになったリソースのロックを定期的に調べて削除します。ORALockExpirationPadパラメータを使用すると、ロックが期限切れになってから削除されるまでの期間を追加(パッド)できます。たとえば、ORALockExpirationPadを120に設定すると、期限切れ時刻から2分以上経過するまで、OraDAVではロックは削除されません。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

オプション 

値 

(秒数) 

デフォルト 

ORAPackageName

OraDAVコマンドの発行時にコールするOraDAVドライバの実装を識別します。デフォルトはOraDAVドライバ、つまりORDSYS.DAV_API_DRIVERパッケージです。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

必須 

値 

(文字列) 

デフォルト 

ORDSYS.DAV_API_DRIVER 

ORAPassword

ORAUserパラメータで指定したユーザーに関連するパスワードを指定します。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

ORAAltPasswordを指定しない場合は必須 

値 

(文字列) 

デフォルト 

(なし) 

ORAPasswordパラメータでパスワードをエンコードされていない文字列で指定しない場合は、ORAAltPasswordパラメータを使用して、BASE64エンコード文字列でパスワードを指定できます。

ORARootPrefix

データベース・リポジトリ内のルートとして使用されるディレクトリを指定します。このパラメータを指定した場合、WebDAVクライアントはこのディレクトリをルートとして認識し、このディレクトリに至るリポジトリ・ディレクトリは認識できません。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

オプション 

値 

(文字列) 

デフォルト 

(なし) 

例8-7では、データベース・リポジトリにディレクトリ/first/second/third/fourthが含まれていて、ORARootPrefixが次のように定義されているとします(値には後続のスラッシュを含めません)。

例8-7    ORARootPrefixパラメータ

DAVParam ORARootPrefix /first/second

この場合、WebDAVクライアントは/thirdディレクトリを認識し、/third/fourthディレクトリにナビゲートできますが、/firstまたは/first/secondディレクトリは認識もナビゲートもできません。

ORAService

接続先のOracle Databaseを指定します。例8-8に示すように、tnsnames.oraファイル内のSID値と一致する値を指定する必要があります。

例8-8    ORAServiceパラメータ

DAVParam ORAService mydbsid.mydomain.com

tnsnames.oraファイルに含まれていないデータベースに接続するには、ORAConnectパラメータを使用します。ORAServiceORAConnectまたはORAConnectSNのいずれかを指定します。1つのみ指定できます。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

ORAConnectまたはORAConnectSNを指定しない場合は必須 

値 

tnsnames.oraファイル内のエントリと一致する文字列) 

デフォルト 

(なし) 

ORATraceEvents

デバッグ用にApacheエラー・ログに記録するイベントのタイプを指定します。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

オプション 

値 

次の文字列の1つを使用します。

  • getsource: ファイル・システムに対するGETアクティビティをトレースします。

  • hreftoutf8: ネイティブなキャラクタ・セットからUTF-8へのHREF変換をトレースします。

  • request: mod_oradavによって処理されるDAVリクエスト、レスポンスおよびステータス値をトレースします。

 

デフォルト 

(なし) 


警告

このパラメータはデバッグに使用すると便利ですが、大量のディスク領域を使用し、システムのパフォーマンスを低下させる場合があります。  


ORATraceLevel

Apacheエラー・ログに記録するデバッグのレベル(トレース文)を指定します。最低レベルは0(デフォルト)で、トレースを実行しません。最高レベルは4で、最大限のトレースを実行します。

カテゴリ   

適用対象 

Portalドライバとその他のシステム(ファイル・システム以外)へのアクセス 

必須/オプション 

オプション 

値 

整数(0〜4) 

デフォルト 

大きい数値を設定すると、より多くの情報がエラー・ログ・ファイルに書き込まれます。


警告

このパラメータを大きい数値に設定すると、デバッグの場合には便利ですが、大量のディスク領域を使用するため、システムのパフォーマンスが低下します。  


ORAUser

ORAServiceパラメータで指定した、サービスへの接続時に使用するデータベース・ユーザー(スキーマ)を指定します。

このユーザーには、次の権限が必要です。

DAVのディレクティブ

この項では、httpd.confファイル内で設定できる次のDAVのディレクティブについて説明します。

この項の一部の資料は、Greg Stein(gstein@lyra.org)著の資料を引用または応用しています。この資料は次のURLで入手できます。

http://www.webdav.org/mod_dav/install.html

DAVDepthInfinity

Depth: Infinityヘッダー付きのPROPFINDリクエストは、サーバーに大きな負荷をかける場合があります。このタイプのリクエストはリポジトリ全体を移動し、見つかった各リソースに関する情報を返します。mod_davはレスポンスをメモリー内で作成するため、このタイプのリクエストは大量のメモリーを使用する可能性があります。(メモリーはリクエストの終了時に解放されますが、ピーク時のメモリー使用量が高くなる可能性があります。)

このタイプのリクエストを防ぐために、DAVDepthInfinityディレクティブが用意されています。これは値がonまたはoffの単純なディレクティブであり、サーバー、ディレクトリまたはロケーションごとに使用できます。値がOffに設定されている場合、このようなリクエストは許可されません。値がOnの場合(つまり、Depth: Infinityヘッダー付きのリクエストを許可する場合)、DoS攻撃を受けやすくなります。ただし、sitecopyなど、一部のクライアントでは、DAVDepthInfinity値をOnにする必要があります。


注意

WebDAVワーキング・グループは、DAVサーバーでこのタイプのリクエストを拒否してもかまわないとしています。適切に作成されたクライアント・ソフトウェアでは、このタイプのリクエストは発行されません。 


DAVLockDB

DAVロック・データベースを作成します。DAVロック・データベースを作成するには、構成ファイルのトップレベル(つまり、<Directory>または<Location>コンテナ・ディレクティブの外側)にDAVLockDBディレクティブを追加します。DAVLockDBディレクティブでは、mod_davで作成するファイルの名前を指定する必要があります。ファイルの作成先として既存のディレクトリを指定し、Oracle HTTP Serverプロセスにそのディレクトリへの書込み権限を付与する必要があります。


注意

NFSマウント済パーティション上のディレクトリを指定しないでください。mod_davでは、flock/fcntlを使用してデータベースへのアクセスが管理されます。一部のオペレーティング・システムでは、NFSマウント済パーティションに対してこれらの操作を使用できません。 


例8-9では、DAVロック・データベースはORACLE_HOME/Apache/varディレクトリに格納されます。このディレクトリはOracle HTTP Serverプロセスによる書込みが可能である必要があります。mod_davでファイルが作成される際に、DAVLockと名前が付けられます。(実際には、mod_davでは、このファイル名と拡張子を使用して1つ以上のファイルが作成されます。)

例8-9    DAVLockDBディレクティブ

DAVLockDB ORACLE_HOME/Apache/var/DAVLock

DAVLockDBディレクティブは、任意のコンテナの外側または<VirtualHost>指定の内側に指定できます。指定する必要があるのは1箇所のみです。ファイル拡張子は指定しないでください。

DAVMinTimeout

ロックの最小存続期間を秒単位で指定します。クライアントがリクエストするロックのタイムアウトがDAVMinTimeout値より短い場合は、かわりにDAVMinTimeout値が使用されて返されます。たとえば、MicrosoftのWebフォルダのロック・タイムアウトはデフォルトで2分(120秒)です。これを10分(600秒)に指定すると、ネットワーク通信量が減り、クライアントがネットワーク待機時間のためにロックを失う可能性が低くなります。

DAVMinTimeoutディレクティブはオプションであり、サーバー、ディレクトリまたはロケーションごとに使用できます。DAVMinTimeoutディレクティブは、単一の正の整数を取ります。この値は最小許容秒数を表すため、0(ゼロ)に設定するとこの機能が無効になります。DAVMinTimeoutのデフォルト値は0(ゼロ)です。

DAVOraNLS

ローカル・ファイル・システムへのアクセスに対するグローバリゼーション・サポートを提供します。このディレクティブでは、ファイル・システム内のファイル名を、NLS_LANG設定を使用して変換する必要があるかどうかを指定します。値Offはデフォルト値で、変換不要であることを意味します。値Onは、ファイル・システム用のキャラクタ・セットが、クライアント・リクエストで使用される可能性のあるすべての文字に変換可能であることを意味します。

関連項目

「OraDAVでのグローバリゼーション・サポートに関する考慮事項」 

DAVOraReadOnly

WebDAVクライアントがWebDAVを読取り専用モードで使用する必要があるかどうかを指定します。値Offはデフォルト値で、WebDAVクライアントが通常動作することを意味します。値Onにより、WebDAVクライアントはWebDAVの使用中に書込み操作を実行できなくなります。ただし、WebブラウザとWebDAVクライアントによる読取り専用アクティビティは許可されます。

Limit

DAVサーバーの操作に必要な構成変更は、DAVおよびDAVLockDBディレクティブの2つのみです。ただし、通常、サイトを保護するには、許可された特定ユーザーのみが書き込めるようにするのが最善の方法です。そのためには、<Limit>ディレクティブを使用する必要があります。

例8-10の構成では、サイトを操作できるのは許可されたユーザーのみです。ただし、これらのユーザーには設定を超えた操作が許可されます。特に、.htaccessファイルをターゲット・ディレクトリに置き、サーバー構成を変更できます。サーバーは、すでに.htaccessファイルを読み取らないように構成されている場合がありますが、確認が必要です。また、DAVが使用可能なディレクトリ内で、CGI、シンボリック・リンク、サーバー・サイド・インクルードなど、他のオプションを禁止できます。

例8-10    <Limit>ディレクティブを使用したサイトの保護

<Location /mypages>
  DAV On
  <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require user greg
  </Limit>
</Location>

例8-11に、AllowOverride NoneおよびOptions Noneの追加により制限を追加して変更された構成を示します。

例8-11    追加制限の使用によるサイトの保護

<Location /mypages>
  DAV On
  AllowOverride None
  Options None
  <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require user greg
  </Limit>
</Location>
<Location /mypages>
  DAV On
  AllowOverride None
  Options None
  <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require user greg
  </Limit>
</Location>

LimitExcept

例8-12に示すように、<Limit>ディレクティブを使用して、保護するHTTPメソッドの包括的なリストを指定するかわりに、<LimitExcept>ディレクティブを使用することもできます。このディレクティブでは、指定したメソッドを除くすべてのメソッドにアクセス制限を適用します。

例8-12    <LimitExcept>ディレクティブを使用したサイトの保護

<Location /mypages>
  DAV On
  AllowOverride None
  Options None
  <LimitExcept GET HEAD OPTIONS>
    require user webadmin
  </LimitExcept>
</Location>

必要に応じて適切な方法を選択してください。<Limit>ディレクティブは厳密で明示的ですが、<LimitExcept>ディレクティブでは将来追加されるメソッドが自動的に制限されます。

LimitXMLRequestBody

mod_davでは、XML Request Bodyがメモリーに解析されます。DoS攻撃で使用されるテクニックの1つは、mod_davサーバー側で大規模なリクエスト本体を送信することです。Oracle HTTP Serverでは、すべてのメソッドのリクエスト本体を制限するディレクティブLimitRequestBodyが定義されます。しかし、大規模なPUT操作が許可されるため、これはmod_davサーバーに対して有効なメカニズムではありません。

XMLリクエスト本体を持つメソッドのみを制限するために、mod_davではLimitXMLRequestBodyディレクティブを提供しています。この値のデフォルトはコンパイル時の定数で、標準では100万(1,000,000)バイトに設定されます。この値を0(ゼロ)に設定すると、サイズ制限は無効になります。

LimitXMLRequestBodyは、サーバー、ディレクトリまたは位置ごとに設定でき、負でない単一の整数引数を取ります。

WebDAVセキュリティに関する考慮事項

WebDAVでは読取りおよび書込み機能が有効になるため、インターネット・ユーザーはWebサイトやOracle Databaseへの書込みを実行できます。この場合、ユーザーがWebサーバー・システム上で実行できる不適切なファイル(トロイの木馬)を置けないようにすることが重要です。WebDAV構成および認証が適切に設定されていない場合、ファイル・システムから不適切なファイルが実行される可能性があります。これらのコンテンツは中間層では実行できないため、この問題はOracle Databaseのコンテンツには当てはまりません。

HTTPプロトコルは、静的ファイルと実行可能ファイルを区別せずにGETリクエストを発行します。Oracle HTTP Serverでは、ファイルはその場所または拡張子に基づいて実行されます。たとえば、シェル・スクリプト(通常はファイル拡張子なし)は、cgi-binディレクトリにある場合は実行されますが、htdocsディレクトリにある場合は静的テキスト・ファイルとして取得されます。一方、.jsp拡張子が付いたJavaServer Pages(JSP)は、通常は場所に関係なく実行されます。ただし、デフォルトでは、mod_oradavは、WebDAVが使用可能なディレクトリでは、.jspまたは.sqljspファイルを実行できないようにします。この2つの拡張子のどちらかが付いているファイルの場合、mod_oradavはファイルを実行するOracle HTTP Serverのロジックをバイパスし、内容を直接読み取ります。これらの拡張子が付いているファイルは、text/plainのMIMEタイプの編集可能ファイルとして取得されます。ORAGetSourceパラメータを使用すると、実行されず常にtext/plainとして取得されるファイル・タイプのリストに追加できます。

ファイルの実行を制限する方法の1つは、<Location>コンテナ・ディレクティブにApacheのForceTypeディレクティブを使用することです。これにより、特定の位置にあるすべてのコンテンツがtext/plainとして取得されます。ただし、この単純で広範囲におよぶアプローチは要件を満たさない場合が多く、GIFファイルなど、実際に使用するMIMEタイプに関連した標準的な動作が必要になります。

ファイル・システム上のコンテンツに伴うこのようなセキュリティ上の問題の処理方法を決定するには、そのコンテンツにどのようなタイプのWebDAVユーザーがアクセスするかを判断する必要があります。通常、WebDAVユーザーは、2つのカテゴリに分類できます。一方のWeb作成者は、Webサイトでのコラボレーションと管理を行い、他方のエンド・ユーザーは、WebDAVをパブリックな記憶領域として使用します。エンド・ユーザーがファイルをアップロードしたり実行したりすることはないため、エンド・ユーザー用にORAGetSourceパラメータで多数のファイル拡張子を指定するか、ForceTypeディレクティブを使用する必要があります。

Oracle HTTP Serverでサポートされている、標準のBasicまたはDigest認証および認可メカニズムを適用してください。通常、これは、提供されるmoddav.confファイル内のデフォルトの場所(dav_publicなど)に適用します。これにより、システムをリモート記憶域として使用できるユーザーが限定され、権限のないユーザーがディスクをいっぱいにするのを防止できます。Webサイトの作成者には、常にOracle HTTP Serverの認証および認可を適用する必要があります。

また、Web作成者が適切に認証および認可された後にJSPファイルまたは他の実行可能ファイルを編集し、実行方法を調べられるように、実行コンテキストと編集コンテキストも提供する必要があります。そのためには、実行コンテキストに関連付けられたディレクトリの別名を作成し、別名を作成した場所でDAVを使用できるようにします。たとえば、URLでcgi-binディレクトリが指定されている場合(http://www.acme.com/cgi-bin/printenvなど)はスクリプトを実行でき、URLで別名edit-cgi-binが指定されている場合(http://www.acme.com/edit-cgi-bin/printenvなど)はスクリプトを編集できるようにするとします。例8-13では、構成ファイル・エントリによってこの目標を達成しています。ここでは、cgi-binディレクトリの内容の編集コンテキストとしてedit-cgi-binが設定されています。

例8-13    コンテキストの編集

Alias /edit-cgi-bin /usr/local/apache/cgi-bin 
<Location /edit-cgi-bin> 
  DAV On 
  ForceType text/plain 
</Location> 

OraDAVのパフォーマンスに関する考慮事項

この項では、各種操作のパフォーマンスの最適化に役立つ情報について説明します。内容は、次のとおりです。

ディスク・キャッシュとOraDAVの併用

Oracle Application Serverでは、Oracle Databaseから取得されるデータに、ローカル・ファイル・システムのディスク・キャッシュを使用できます。ディスク・キャッシュは、アクセス頻度の高いデータベース・データに対するHTTPのGET操作のパフォーマンスを改善するために設計されています。データベースのデータがリクエストされると、そのデータが取得され、ローカル・ファイル・システムのディスク・キャッシュに格納されます。続いて同じデータに対するリクエストがあり、データがまだディスク・キャッシュに残っている場合、Oracle Application Serverでは、データベース内のデータに変更があったかどうかを(etag値を検査することで)チェックします。データに変更がない場合はキャッシュから取得されます。これは、データベースから相当量のデータを取り出すよりも効率的です。

ディスク・キャッシュによるパフォーマンスの改善度は、中型から大型のファイル(約50KB以上)の場合に最大となります。ただし、ファイルが小さい場合、パフォーマンスの改善度は小さくなり、非常に小さいファイルの場合は、ディスク・キャッシュを使用するほうがディスク・キャッシュを使用しない場合よりもパフォーマンスが低下することがあります。たとえば、ファイル・サイズがわずか24バイトのmyfile.datファイルがリクエストされた場合、そのファイルをデータベースからローカル・システムにコピーする所要時間は、データベースにアクセスしてファイルの変更の有無をチェックする場合に比べてはるかに短くなります。ディスク・キャッシュを使用しない場合、ファイルの変更の有無がデータベースでチェックされることはなく、常にファイルがデータベースからコピーされます。

次のOraDAVのパラメータを設定して、OraDAV操作用にディスク・キャッシュを制御できます。

ORACacheDirectoryを指定すると、OraDAV操作用のディスク・キャッシュが有効化になります。また、この場合は、ORACacheTotalSize値も指定する必要があります。ORACacheMaxResourceSizeおよびORACachePrunePercentパラメータの値も指定できます。ORACacheDirectoryを指定しないと、OraDAV操作用のディスク・キャッシュは有効にならず、他のディスク・キャッシュ関連のパラメータは関係しません。

関連項目

「OraDAVの構成パラメータ」 

WebDAVアクティビティ用のOracle Application Server Web Cacheのバイパス

Oracle Application Server Web Cacheは、Webサーバー・システム上のデータに対するクライアントの読取り専用操作など、ほとんどのWebアクティビティのパフォーマンスを高めます。ただし、OracleAS Web CacheはOraDAV操作をキャッシュしません。読取りおよび書込み機能用に設計されています。したがって、WebDAVクライアントをOracle HTTP Serverに直接接続すればパフォーマンスを改善できます。

WebDAVクライアント用にOracleAS Web Cacheをバイパスする場合は、Oracle HTTP Serverの標準ポートであるポート7778を使用できます。この場合、WebDAVクライアントがWebサーバーに直接接続し、OracleAS Web Cacheを使用したときよりもパフォーマンスが改善されます。

mod_oradav使用上の注意

この項では、mod_oradavに関連する使用上の注意について説明します。一部の情報は、Greg Stein(gstein@lyra.org)著の資料から引用または応用されています。この資料は次のURLで入手できます。

http://www.webdav.org/mod_dav/install.html

ルートの場所にあるコンテナのマッピング

ルートの場所にあるコンテナのマッピング時の注意事項は、次のとおりです。

OraDAVでのグローバリゼーション・サポートに関する考慮事項

データベースのデータにアクセスする場合に、URLやファイル名などのクライアント・リクエストに使用するキャラクタ・セットには、データベースに使用するキャラクタ・セットとの互換性が必要です。特に、データベースのキャラクタ・セットがクライアント・リクエストのキャラクタ・セットとは異なる場合、データベースのキャラクタ・セットは、クライアント・リクエストに使用される可能性のあるすべての文字に変換できる必要があります(したがって、クライアント・リクエスト用キャラクタ・セットのスーパーセットである必要があります)。つまり、変換中にデータベースのキャラクタ・セットによって置換文字が発生しないようにする必要があります。

Oracle HTTP Serverの起動時に、NLS_LANG環境変数にクライアント・リクエスト用のキャラクタ・セットを反映させる必要があります。たとえば、ファイル名とURLに漢字が含まれている場合は、NLS_LANG=JAPANESE_JAPAN.JA16SJIS(ShiftJIS文字の場合)を指定できます。この場合、データベース用には、UTF8など、SJIS文字に対応するキャラクタ・セットを指定する必要があります。

データベースへのアクセス時と異なり、ローカル・ファイル・システムにアクセスする場合は、ファイル・システム用のキャラクタ・セットを、クライアント・リクエストに埋め込まれたURL用のキャラクタ・セットと同じにするか、あるいは互換性のあるキャラクタ・セットにする必要があります。ファイル・システム用のキャラクタ・セットは、クライアント・リクエストに使用される可能性のあるすべての文字に変換できる必要があります。NLS_LANGパラメータ値は、クライアントとOraDAVサーバーのキャラクタ・セットを表す必要があります。また、パラメータDAVOraNLSに値Onを指定する必要があります。

たとえば、図8-2に示すように、ファイルにShiftJIS文字が使用され、dav_publicにあるファイル・システムがオペレーティング・システムではJAPANESE_JAPAN.JA16SJISキャラクタ・セットで表されているシステム上で、Webフォルダを使用している場合を考えます。

図8-2    OraDAVからShiftJIS文字を使用したファイル・システムへのアクセス


画像の説明

この場合は、次の手順で操作する必要があります。

  1. NLS_LANG値をJAPANESE_JAPAN.JA16SJISに設定します。

  2. httpd.confファイルに次の行を追加します。

    <Location /dav_public>
      DAV On
      DAVOraNLS On
    </Location>
    


    注意

    Microsoft Internet ExplorerをOraDAVおよびマルチバイト・キャラクタ・セットと併用する場合は、「インターネット オプション」の「詳細設定」タブでインターネット・オプション「常にUTF-8としてURLを送信する(再起動が必要)」を無効にする(選択を解除する)必要があります。(デフォルトでは、このオプションは選択されています)。このオプションの選択を解除するという要件は、データベースへのアクセスとファイル・システムへのアクセスの両方に適用されます。 


PROPFINDのセキュリティ

これまでの項で示した<Limit>および<LimitExcept>ディレクティブの構成例では、PROPFINDメソッドが読取り専用である場合も制限されました。これは、PROPFINDメソッドを使用すると、DAVが使用可能なディレクトリ内のすべてのファイルをリストできるためです。セキュリティ上の理由で、ファイル・リストを一般の読取りアクセスから保護することをお薦めします。

PROPFINDをユーザー・グループ、一連のドメインまたは一連のホストに制限し、内容を変更するメソッドをごく少数の作成者のみに制限する方法もあります。たとえば、会社の従業員にサーバー上のファイルの参照を許可し、ファイル変更は少数のユーザーにのみ許可するということが可能です。匿名(非認証)のユーザーは、参照も変更もできません。

最後に、Webサーバーを汎用の読取り専用ファイル・リポジトリにする場合は、単にPROPFINDを制限から外します。これにより、すべてのユーザーがディレクトリを任意に参照し、ファイルをフェッチできます。

DAVファイルのバックアップおよびリカバリ

$ORACLE_HOME/Apache/oradav/conf/moddav.confがファイル記憶域を使用するように構成されている場合、ファイルはデフォルトで次の場所に置かれます。

$ORACLE_HOME/Apache/Apache/htdocs/dav_public 

Oracle Application Server Recovery Managerでは、このデフォルトの場所をバックアップします。ファイルの格納場所を変更した場合、Recovery Managerでファイルをバックアップするには、config_misc_files.inpファイルに新しい場所を追加する必要があります。詳細は、『Oracle Application Server管理者ガイド』の「バックアップとリカバリの概要」を参照してください。


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引