Oracle XML DBリポジトリ・データには、FTPおよびHTTP(S)/WebDAVプロトコルを使用してアクセスできます。
Oracle XML DBは、Oracle XML DBプロトコル・サーバーも提供します。Oracle XML DBは、その階層リポジトリまたはファイル・システムにアクセスするための標準インターネット・プロトコルであるFTP、WebDAVおよびHTTP(S)をサポートします。HTTPSはOracle XML DBリポジトリへのセキュアなアクセスを提供します。
多くのユーザーは、これらのプロトコルによって、追加のソフトウェアをインストールせずに、Oracle XML DBに直接アクセスできます。プロトコルで使用するユーザー名およびパスワードは、SQL*Plusで使用するものと同じです。エンタープライズ・ユーザーもサポートされています。データベース管理者は、これらのプロトコルと、DBMS_XDB_REPOS
などのリソースAPIを使用して、リポジトリの仮想フォルダ/sys/asm
にあるOracle Automatic Storage Management(Oracle ASM)のファイルとフォルダにアクセスすることができます。
Oracle XML DBを使用する前におよびOracle XML DBリポジトリ・データへのアクセスで説明したとおり、Oracle XML DBリポジトリは、XML用に設計された階層データ・リポジトリをデータベース内に提供します。Oracle XML DBリポジトリは、XMLType
のデータベース・オブジェクトにパス名(またはURL)をマップし、これらのオブジェクトの管理機能を提供します。
関連項目:
リポジトリ情報へのアクセスとその場合の制限事項の詳細は、Oracle XML DBリポジトリ・データへのアクセスを参照してください。
注意:
Oracle XML DBプロトコルを使用して仮想フォルダ/sys/asm
にアクセスする場合は、ロールDBA
の権限を持っているSYS
以外のユーザーとしてログインする必要があります。
Oracle XML DBのプロトコルは、EBCDICプラットフォームではサポートされません。
Oracle XML DBプロトコル・サーバーは、セッションの共有プールを保持します。各プロトコル接続は、このプールの1つのセッションに関連付けられます。接続のクローズ後、セッションは共有プールに戻され、その後の接続で使用できます。
セッション・プーリングでは、特に、リクエストごとに新しい接続が作成されるHTTP 1.0を使用する場合、セッション状態を再作成するコストが削減され、HTTP(S)のパフォーマンスが向上します。たとえば、データベース・セッションを作成する必要がある場合に、既存のHTTP/1.1接続でいくつかの小さいファイルを取り出すことができます。Oracle XML DBの構成ファイルxdbconfig.xml
でセッション・プール・サイズを設定することによってセッション数を調整したり、このプール・サイズを0 (ゼロ)に設定することによってセッションを使用禁止にできます。
セッション・プーリングは、Javaサーブレットを作成するユーザーに影響する可能性があります。これは、他のユーザーが別のユーザーの別のリクエストによって初期化されたセッションの状態を参照できるためです。そのため、サーブレットの作成者は、Java静的変数などのセッション・メモリーのみを使用して、特定のユーザーではなくアプリケーション全体に対するデータを保持する必要があります。セッションが1人のユーザーに対してのみ存在すると想定するのではなく、ユーザーごとの状態をデータベースまたは参照表に格納する必要があります。
図28-1に、Oracle XML DB プロトコル・サーバーのコンポーネント、およびそれらを使用してOracle XML DBリポジトリのファイルおよび他のデータにアクセスする方法を示します。この図では、リポジトリの関連するコンポーネントのみを示します。
Oracle XML DBプロトコル・サーバーでは、ファイルxdbconfig.xml
に格納された構成パラメータを使用して、起動状態を初期化したり、セッション・レベルの構成を管理します。セッション・プール・サイズおよびタイムアウト・パラメータは動的に変更できません。変更内容を有効にするためには、データベースを再起動する必要があります。
Oracle XML DBプロトコルの構成パラメータについて説明します。これには、すべてのプロトコルに共通するもの、FTPに固有のものおよびHTTP(S)/WebDAVに固有のものが含まれます。
図28-1に、すべてのプロトコルに共通のパラメータを示します。/xdbconfig
で始まるパラメータを除き、これらすべてのパラメータ名は、Oracle XML DB構成スキーマの次のXPathに関連しています。
/xdbconfig/sysconfig/protocolconfig/common
FTP固有のパラメータ: 表28-2にFTP固有のパラメータを示します。これらは、Oracle XML DB構成スキーマの次のXPathに関連しています。
/xdbconfig/sysconfig/protocolconfig/ftpconfig
サーブレット関連のパラメータ以外のHTTP(S)/WebDAV固有のパラメータ: 表28-3はHTTP(S)/WebDAV固有のパラメータを示します。これらのパラメータは、Oracle XML DB構成スキーマの次のXPathに関連しています。
/xdbconfig/sysconfig/protocolconfig/httpconfig
関連項目:
構成ファイルxdbconfig.xml
の詳細は、 Oracle XML DBの管理を参照してください。
schemaLocation-mappings
パラメータの詳細は、「デフォルトの名前空間からスキーマの場所へのマッピングの構成」を参照してください
xml-extensions
パラメータの詳細は、「XMLファイル拡張子の構成」を参照してください
これらのパラメータの使用例については、構成ファイル/xdbconfig.xml
を参照してください。
表28-1 共通プロトコルの構成パラメータ
パラメータ | 説明 |
---|---|
|
ファイル拡張子のマッピングをMIMEタイプに指定します。リソースがOracle XML DBリポジトリに格納され、そのMIMEタイプが指定されていない場合、このマッピング・リストを使用してそのMIMEタイプが設定されます。 |
|
ファイル拡張子のマッピングを言語に指定します。リソースがOracle XML DBリポジトリに格納され、その言語が指定されていない場合、このマッピング・リストを使用してその言語が設定されます。 |
|
ファイル拡張子のマッピングをエンコーディングに指定します。リソースがOracle XML DBリポジトリに格納され、そのエンコーディングが指定されていない場合、このマッピング・リストを使用してそのエンコーディングが設定されます。 |
|
Oracle XML DBによってXMLコンテンツとして処理されるファイル名の拡張子のリストを指定します。 |
|
プロトコル・サーバーのセッション・プールに保持されるセッションの最大数を指定します。 |
|
接続がこの時間(100分の1秒単位)の間アイドル状態であった場合、接続を行っている共有サーバーは、他の接続のために解放されます。 |
|
プロトコル・サーバーがセッション(およびそれに対応する接続)を終了するまでの、接続のアイドル状態の経過時間(100分の1秒単位)を指定します。このパラメータは、特定のプロトコルのセッション・タイムアウトが構成に存在しない場合にのみ使用されます。 |
|
指定された名前空間のデフォルトのスキーマの場所を指定します。このパラメータは、インスタンスのXML文書に |
|
リソースのWebDAVロックが無効になるまでの時間を指定します。これは、リソースをロックするクライアントが指定したタイムアウトでオーバーライドできます。 |
表28-2 FTP固有の構成パラメータ
パラメータ | 説明 |
---|---|
|
FTPの |
|
FTPサーバーがリスニングするポートを指定します。デフォルトではこれは |
|
FTPサーバーを実行するプロトコルを指定します。デフォルトは |
|
FTPクライアントがサーバーに接続したときに表示される、ユーザー定義のウェルカム・メッセージ。このパラメータが空または欠落している場合は、「Unauthorized use of this FTP server is prohibited and may be subject to civil and criminal prosecution.」(このFTPサーバーの不正使用は禁じられており、民事および刑事訴追の対象となる場合があります。)というデフォルト・ウェルカム・メッセージが表示されます。 |
|
ホスト・システムへのアクセスに使用する名前。値は、IPアドレスまたはホスト・ネーミング(例: Linuxの場合は |
|
プロトコル・サーバーがFTP接続を終了するまでの、接続のアイドル状態の経過時間(100分の1秒単位)を指定します。 |
表28-3 HTTP(S)またはWebDAV固有の構成パラメータ(サーブレットを除く)
パラメータ | 説明 |
---|---|
|
HTTP(S)またはWebDAVサーバーがプロトコル このパラメータは、空であるかどうかに関係なく、存在する必要があります。存在しない場合、XML Schema |
|
HTTP(S)またはWebDAVサーバーがプロトコル このパラメータはオプションですが、存在する場合は、 |
|
ポート このパラメータは存在する必要があります。存在しない場合、XML Schema |
|
ポート このパラメータはオプションですが、存在する場合は、 |
|
プロトコル・サーバーがHTTP(S)セッション(およびそれに対応する接続)を終了するまでの、接続のアイドル状態の経過時間(100分の1秒単位)を指定します。 |
|
HTTP(S)ヘッダーの最大サイズ(バイト単位)を指定します。 |
|
HTTP(S) Request Bodyの最大サイズ(バイト単位)を指定します。 |
|
「ウェルカム・ファイル」とみなされるファイル名のリストを指定します。サーバーは、コンテナに対するHTTP(S) |
|
受信URLがUTF-8またはリクエストのContent-TypeフィールドのCharsetパラメータに指定されたキャラクタ・セットでエンコードされていない場合に、HTTP(S)プロトコル・サーバーは、受信URLがこのキャラクタ・セットでエンコードされていると想定します。 |
|
ロック解除された |
|
HTTP認証メカニズムを使用できます。「HTTPの認証メカニズムの構成および管理」を参照してください" |
|
URLの期限切れ日時を指定するHTTPヘッダー。「URL有効期限の制御」を参照してください。 |
リポジトリによるセキュアHTTP接続(HTTPS)の使用を有効にするには、データベース管理者(DBA)がデータベースを適切に構成する必要があります。パラメータhttp2-port
およびhttp2-protocol
を構成し、HTTPリスナーでSSLを使用できるようにして、TCPS Dispatcherの起動を有効にします。次に、DBAはデータベースとリスナーを停止および再起動する必要があります。
関連項目:
Oracle XML DBパラメータの構成の詳細は、「xdbconfig.xmlを使用したOracle XML DBの構成」を参照してください
SSLに対してHTTPリスナーを構成するには、データベース管理者(DBA)はサーバー用のウォレットを作成して証明書をインポートし、サーバーにウォレットの場所を指定して、クライアント認証を無効にし、SSL_DH_anon
暗号スイートをSSL_CIPHER_SUITES
に追加して、TCP/IPをSSLで使用するリスニング・エンド・ポイントを作成する必要があります。
つまり、DBAは次の手順を実行して、SSLに対してHTTPリスナーを構成する必要があります。
サーバー用のウォレットを作成し、証明書をインポートします。Oracle Wallet Managerを使用して次の操作を行います。
サーバー用のウォレットを作成します。
サーバーの識別名(DN)を持つ有効な証明書がない場合は、証明書リクエストを作成して認証局に送信します。有効な証明書を認証局から取得します。
サーバーの識別名(DN)を持つ有効な証明書をサーバーにインポートします。
新しいウォレットを不明瞭化した形式で保存し、パスワードなしで開けるようにします。
関連項目:
ウォレットの作成方法の詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。
ウォレットの場所をサーバーに対して指定します。Oracle Net Managerで行います。構成がディスクに保存されたことを確認します。この手順により、ファイルsqlnet.ora
およびlistener.ora
が更新されます。
サーバー側でのクライアント認証を無効にします。大部分のWebクライアントには証明書がないからです。Oracle Net Managerを使用します。この手順により、ファイルsqlnet.ora
が更新されます。
SSL_DH_anon
暗号スイートをSSL_CIPHER_SUITES
に追加します(次のいずれかを使用してください)。
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
SSL_DH_anon_WITH_RC4_128_MD5
SSL_DH_anon_WITH_DES_CBC_SHA
この手順により、ファイルsqlnet.ora
が更新されます。
TCP/IPをSSLで使用するリスニング・エンド・ポイントを作成します。Oracle Net Managerを使用します。この手順により、ファイルlistener.ora
が更新されます。
データベース起動中のTCPS Dispatcherの起動を有効にするには、データベース管理者(DBA)はデータベースpfile
を編集する必要があります。
pfile
に次の行を追加する必要があります。ここで、SID
はデータベースのSIDです。
dispatchers=(protocol=tcps)(service=SIDxdb)
データベースのpfile
の場所はオペレーティング・システムにより異なります。次を参照してください。
MS Windows - PARENT
/admin/orcl/pfile
。ここで、PARENT
はフォルダORACLE_HOME
の親フォルダです
UNIX、Linux: $ORACLE_HOME/admin/$ORACLE_SID/pfile
TNS Listenerコマンドlsnrctl status
を使用して、HTTP(S)およびFTPサポートが有効かどうかを検証できます。このことの例を示します。
関連項目:
例28-1 FTPおよびHTTP(S)プロトコルがサポートされているリスナーの状態
LSNRCTL for 32-bit Windows: Version 11.1.0.5.0 - Production on 20-AUG-2007 16:02:34 Copyright (c) 1991, 2007, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER -------------------------------------------------------------------------------------------- Alias LISTENER Version TNSLSNR for 32-bit Windows: Version 11.1.0.5.0 - Beta Start Date 20-JUN-2007 15:35:40 Uptime 0 days 16 hr. 47 min. 42 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File C:\oracle\product\11.1.0\db_1\network\admin\listener.ora Listener Log File c:\oracle\diag\tnslsnr\quine-pc\listener\alert\log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=quine-pc.example.com)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=quine-pc.example.com) (PORT=21))(Presentation=FTP)(Session=RAW)) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=quine-pc.example.com) (PORT=443))(Presentation=HTTP)(Session=RAW)) Services Summary... Service "orcl.example.com" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB.example.com" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orcl_XPT.example.com" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully
マルチテナント・コンテナ・データベース(CDB)では、プロトコル・サーバーのポート番号によって、接続されたプラガブル・データベース(PDB)を識別します。そのため、このようなデータベースにはそれぞれ一意のポート番号が必要です。データベース管理者(DBA)は、PDBで使用される各ポート番号が一意であることを確認する必要があります。
ポートの競合を避け、統合によって発生する可能性のあるポートの競合を解決するには、データベース管理者は次の手順を実行する必要があります。
DBMS_XDB_CONFIG.usedPort
を使用して、同じCDB内で別のPDBが使用しているポート番号を取得します。DBMS_XDB_CONFIG.setFTPPort
またはDBMS_XDB_CONFIG.setHTTPPort
を(必要に応じて)使用し、競合しているポート番号をそれぞれ一意の番号に変更します。注意:
PDBのプラグインまたはクローン操作後、Oracle XML DBが完全に初期化されるまでの間、構成ファイルxdbconfig.xml
のポート・パラメータ設定は未定義となる可能性があります。DBMS_XDB_CONFIG
サブプログラムgetFTPPort
、getHTTPPort
、getHTTPSPort
、setFTPPort
、setHTTPPort
またはsetHTTPSPort
を使用して、ポート値を取得または変更することをお薦めします。
構成ファイルxdbconfig.xml
に要素authentication
(要素httpconfig
の子)を設定することにより、Oracle XML DBリポジトリへのHTTPアクセスを許可するよう、認証メカニズムを構成します。
12c リリース1 (12.1.0.1)以降、Oracle Databaseでは、Basic認証だけでなくDigestアクセス認証もサポートしています。
ユーザーの資格証明では、大/小文字が区別されます。具体的には、認証を受けるにはユーザー名が作成された名前と正確に一致する必要があります(デフォルトでは、すべて大文字)。
Digestアクセス認証(Digest認証とも呼ばれる)では、完全なデータ暗号化に伴うオーバーヘッドを発生させることなく、ユーザーの資格証明(ユーザー名、パスワードなど)の暗号化を行います。
使用する認証メカニズムは、構成ファイルxdbconfig.xml
に要素authentication
(要素httpconfig
の子)を設定することにより構成できます。要素authentication
はオプションです。存在しない場合は、Basic認証のみが使用されます。
要素authentication
には、次の2つの子要素を使用できます。
要素allow-mechanism
では、使用可能なメカニズム(basic
、digest
またはcustom
)を指定します。許可するメカニズムごとに、個別のallow-mechanism
要素を指定してください。
要素digest-auth
はオプションです。Digestメカニズムの情報を指定します。子要素nonce-timeout
では、指定されたnonceの有効期限を秒数で指定します。デフォルト値は300秒です。
digest
が指定されたallow-mechanism
はあるがdigest-auth
要素がない場合は、デフォルト値が使用されます。digest
が指定されたallow-mechanism
がない場合、digest-auth
要素は無視されます。
HTTPリクエストは、指定されたallow-mechanism
ごとに受け付けられます。認証チャレンジは、指定されたallow-mechanism
タイプの順に提示されます。たとえば、digest
とbasic
の両方がこの順番で存在する場合は、Digestチャレンジ、Basicチャレンジの順に提示されます。常に強力な認証を弱い認証よりも優先させることをお薦めします(Digest認証はBasic認証よりも強力)。
関連項目:
インストール、アップグレードおよびダウングレードの考慮事項は、「既存のOracle XML DBのインストールのアップグレードまたはダウングレード」を参照してください
RFC2617、HTTP認証方式: Basicアクセス認証とDigestアクセス認証(http://tools.ietf.org/html/rfc2617
)
Digest認証では、unauthorizedレスポンスが発行されるたびに、サーバーによりnonceが生成されます。クライアントでは、サーバーへのリクエストにnonceを含めます。サーバーでは、クライアントから受信したnonceをチェックし、クライアント認証を拒否する必要があるかどうかを確認します。クライアントでは、同じ方法でサーバーを認証できます。
nonceは、サーバーがHTTPレスポンス401 (unauthorized)を発行するたびに生成される一意の文字列です。クライアントでは、サーバーに送信する後続のリクエストにnonceを含めます。サーバーでは、クライアントから受信したnonceを確認します。不正であったり、nonce-timeout
の期限が切れている場合、サーバーはただちに認証を拒否できます
(クライアントは独自のnonceを生成できるので、サーバーの認証に同じメカニズムの使用が可能です。クライアントとサーバーの両方がこのクライアント側のnonceを使用することで、特定のプレーン・テキスト攻撃を防止できます)。
サーバーがクライアントにDigestチャレンジを送信するたびに、新しいnonceが生成されます。nonceはnonceキーに基づいています。最初のnonceキーは、データベースのインストールまたはアップグレード時にランダムに生成されます。
Digest認証を使用する場合は、新しいnonceキーを定期的に作成して、キーの整合性を確保することもお薦めします。これを行うには、PL/SQLプロシージャDBMS_XDB_ADMIN.createNonceKey
を使用します。
プロトコル仕様のRFC 959 (FTP)、RFC 2616 (HTTP)およびRFC 2518 (WebDAV)では、暗黙的にサーバー側の抽象的な階層ファイル・システムを想定しています。これはOracle XML DBリポジトリにマッピングされます。リポジトリでは、名前解決、ACLベースのセキュリティおよび任意のコンテンツを格納したり取得する機能が提供されます。
リポジトリは、FTPを介したバイナリ・データ入力と、XML Schemaに基づく文書を格納できます。
Oracle XML DBプロトコル・サーバーでは、常に、挿入される文書が、Oracle XML DBリポジトリで登録されているXML Schemaに基づいているかどうかがチェックされます。基づいている場合、使用するXMLType
記憶域モデルは、該当するXML Schemaによって決定されます。基づいていない場合、文書はBLOB
として格納されます。
RFC959で規定されているファイル転送プロトコル(FTP)は、最も古く、最も一般的なプロトコルの1つです。これにより、異機種間のファイル・システムへの均一な方法でのアクセスが可能となります。FTPを使用すると、Oracle XML DBリポジトリに格納されたデータにアクセスして更新できます。
ファイル転送プロトコル(FTP)は、オペレーティング・システムの専用クライアント、ファイル・システムのエクスプローラ・クライアントおよびブラウザで実装されています。FTPは、一般的にセッション指向であり、明示的なログインによってユーザー・セッションが作成され、ファイルまたはディレクトリがダウンロードおよび参照された後、接続がクローズされます。
1回の接続でコマンド・メッセージの転送とステータスの取得が実行されます。ただし、データ転送用に、クライアントとサーバー間で新しい接続がオープンされます。一方、HTTP(S)を使用すると、1回の接続でコマンドとデータが転送されます。
注意:
セキュリティ上の理由のため、FTPはデフォルトでOracle Databaseに対して無効になっています。IETF FTPプロトコルの仕様ではパスワードをクリアテキストで送信することが要求されているためです。無効化は、FTPサーバーのポートをゼロ(0)にすることで実現しています。FTPを有効にするには、ftp-port
パラメータを、使用するFTPポート(2100など)に設定します。
関連項目:
RFC 959: FTPプロトコル仕様 - http://www.ietf.org/rfc/rfc959.txt
構成パラメータの詳細は、「xdbconfig.xmlを使用したOracle XML DBの構成」を参照してください
Oracle XML DBでサポートされていないFTP機能には、レコード指向のファイルや追加、割当て、アカウントおよび中断の操作があります。
Oracle XML DBは、RFC 959で定義されたFTPを実装しますが、次のオプション機能は除きます。
レコード指向のファイル、たとえば、STRU
メソッドは、FILE
構造のみサポートされています。これは、ファイルの転送に最も広範囲に使用されている構造です。これは、仕様で指定されているデフォルトでもあります。構造マウントはサポートされません。
追加。
割当て。ファイル転送の前に領域を事前に割り当てます。
アカウント。安全性の低いTelnetプロトコルを使用します。
強制終了。
Oracle XML DBでは、Oracle XML DBリポジトリにアクセスするための複数のFTPクライアント・メソッドがサポートされています。
cdup
- 作業ディレクトリを親ディレクトリに変更します。
cwd
- 作業フォルダを変更します。
dele
- ファイルを削除します(ディレクトリは対象外)。
list
、nlst
- 作業ディレクトリのファイルをリストします。
mkd
- ディレクトリを作成します。
noop
- 何もしません(接続のタイムアウト・カウンタはリセットされます)。
pasv
、port
- TCPデータ接続を確立します。
pwd
- 作業フォルダを取得します。
quit
- 接続を閉じてFTPセッションを終了します。
retr
- 確立された接続を使用してデータを取得します。
rmd
- ディレクトリを削除します。
rnfr
、rnto
- ファイル名を変更します(2ステップ・プロセス - ファイルから、ファイルへ)。
stor
- 確立された接続を使用してデータを格納します。
syst
- システムのバージョンを取得します。
type
- データ型を変更します。ascii
またはimage
バイナリ型のみが可能です。
user
、pass
- ユーザーのログインです。
関連項目:
サポートされているFTPのquote
メソッドについては「FTP Quoteメソッド」を参照してください
FTPメソッドproxy
を使用する例は「Oracle ASMファイルに対するFTPの使用」を参照してください。
Oracle Databaseは、Oracle XML DBに直接情報を提供するFTP quote
メソッドを複数サポートしています。
rm_r
- ファイルまたはフォルダ<resource_name>
を削除します。フォルダの場合、<resource_name>
に含まれるすべてのファイルとフォルダを再帰的に削除します。
quote rm_r
<resource_name>
rm_f
- リソースを強制的に削除します。
quote rm_f
<resource_name>
rm_rf
- rm_r
およびrm_f
を組み合せます。ファイルとフォルダを強制的かつ再帰的に削除します。
quote rm_rf
<resource_name>
set_nls_locale
- FTPメソッドでファイル名やディレクトリ名に使用する(メソッド・レスポンスでの名前を含む)キャラクタ・セット・エンコーディングを指定します(<charset_name>
)。
quote set_nls_locale {<charset_name> | NULL}
<charset_name>
に対して指定できるのは、IANAキャラクタ・セット名のみです。nls_locale
がNULL
または設定されていない場合、こデータベース・キャラクタ・セットが使用されます。
set_charset
- サーバーに送信されるデータのキャラクタ・セットを指定します。
quote set_charset {
<charset_name>
| NULL}
set_charset
メソッドは、構成ファイルxdbconfig.xml
で定義されているMIMEタイプへのファイル拡張子マッピングで決定されているとおり、テキスト・ファイルのみに適用され、バイナリ・ファイルには適用されません。
set_charset
に提供されているパラメータが<charset_name>
(NULL
ではない)場合、これによってデータのキャラクタ・セットが指定されます。
set_charset
に提供されているパラメータがNULL
の場合や、set_charset
コマンドが指定されていない場合は、データのMIMEタイプによって、そのデータのキャラクタ・セットが決定されます。
MIMEタイプがtext/xml
でない場合は、データはXMLとは仮定されません。データベース・キャラクタ・セットが使用されます。
MIMEタイプがtext/xml
である場合、データはXML文書を表します。
XML文書内にバイト・オーダー・マーク脚注1 (BOM)がある場合、それによってデータのキャラクタ・セットが決定されます。
BOMが ない場合、次のようになります。
XML文書にエンコーディング宣言がある場合、それによりデータのキャラクタ・セットが決定されます。
エンコーディング宣言がない場合、UTF-8キャラクタ・セットが使用されます。
標準のコマンドラインFTPツールで文書をOracle XML DBリポジトリにロードするときに発行されるコマンドと、生成された出力の例を示します。
図28-3および例28-2で示されている要点は、Windows ExplorerおよびFTPツールのいずれもがOracle XML DBの操作を認識していないことです。このようなツールおよびOracle XML DBの両方でオープン・インターネット・プロトコルがサポートされているため、最初から相互に使用できます。
WebDAVまたはFTPプロトコルを認識するツールを使用すると、Oracle XML DBリポジトリで管理されるコンテンツを作成できます。クライアントまたは中間層に追加のソフトウェアをインストールする必要はありません。
Windows ExplorerやFTPなどのツールを使用してフォルダのコンテンツを表示すると、そのフォルダに格納されたXML Schemaに基づく文書のサイズはゼロ(0)バイトと表示されます。このように設計されているのは、次の2つの理由からです。
文書のサイズが明確でありません。文書に関連するサイズには、文書を出力して生成されたCLOB
インスタンスのサイズ、文書をデータベース内に永続的に保持するために使用するオブジェクトの格納に必要なバイト数などがあります。
選択された定義に関係なく、この情報を計算して保持するにはコストがかかります。
例28-2 FTPを使用したリポジトリへのコンテンツのアップロード
$ ftp mdrake-sun 2100
Connected to mdrake-sun.
220 mdrake-sun FTP Server (Oracle XML DB/Oracle Database 10g Enterprise Edition
Release 10.1.0.1.0 - Beta) ready.
Name (mdrake-sun:oracle10): QUINE
331 Password required for QUINE
Password: password
230 QUINE logged in
ftp> cd /source/schemas
250 CWD Command successful
ftp> mkdir PurchaseOrders
257 MKD Command successful
ftp> cd PurchaseOrders
250 CWD Command successful
ftp> mkdir 2002
257 MKD Command successful
ftp> cd 2002
250 CWD Command successful
ftp> mkdir "Apr"
257 MKD Command successful
ftp> put "Apr/AMCEWEN-20021009123336171PDT.xml"
"Apr/AMCEWEN-20021009123336171PDT.xml"
200 PORT Command successful
150 ASCII Data Connection
226 ASCII Transfer Complete
local: Apr/AMCEWEN-20021009123336171PDT.xml remote:
Apr/AMCEWEN-20021009123336171PDT.xml
4718 bytes sent in 0.0017 seconds (2683.41 Kbytes/s)
ftp> put "Apr/AMCEWEN-20021009123336271PDT.xml"
"Apr/AMCEWEN-20021009123336271PDT.xml"
200 PORT Command successful
150 ASCII Data Connection
226 ASCII Transfer Complete
local: Apr/AMCEWEN-20021009123336271PDT.xml remote:
Apr/AMCEWEN-20021009123336271PDT.xml
4800 bytes sent in 0.0014 seconds (3357.81 Kbytes/s)
.....
ftp> cd "Apr"
250 CWD Command successful
ftp> ls -l
200 PORT Command successful
150 ASCII Data Connection
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 AMCEWEN-20021009123336171PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 AMCEWEN-20021009123336271PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 EABEL-20021009123336251PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 PTUCKER-20021009123336191PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 PTUCKER-20021009123336291PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 SBELL-20021009123336231PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 SBELL-20021009123336331PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 SKING-20021009123336321PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 SMCCAIN-20021009123336151PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 SMCCAIN-20021009123336341PDT.xml
-rw-r--r1 QUINE oracle 0 JUN 24 15:41 VJONES-20021009123336301PDT.xml
226 ASCII Transfer Complete
remote: -l
959 bytes received in 0.0027 seconds (349.45 Kbytes/s)
ftp> cd ".."
250 CWD Command successful
....
ftp> quit
221 QUIT Goodbye.
$
Oracle Automatic Storage Management(Oracle ASM)を使用すると、データベース・ファイルはディスク・グループに整理され、管理が簡潔になるとともに、データベースのミラー化やI/Oバランシングなどの利用が可能になります。プロトコルおよびリソースAPIを使用して、リポジトリのvirtual folder /sys/asm
内のOracle ASMファイルにアクセスできます。/sys/asm
にあるファイルはすべてバイナリです。
一般的な用途は、Oracle ASMのファイルやフォルダに対するリスト表示、コピー、移動、作成、および削除です。例28-3はOracle ASMの仮想フォルダのナビゲートとサブフォルダ内のファイルのリスト表示の例です。
Oracle ASM仮想フォルダ/sys/asm
の構造は、Oracle XML DBリポジトリ・データへのアクセスで説明しています。例28-3では、ディスク・グループがDATA
およびRECOVERY
、データベース名がMFG
、エイリアス用に作成されたディレクトリがdbs
およびtmp
です。この例はサブフォルダにナビゲートし、ファイルをリストし、ファイルの1つをローカルのファイル・システムにコピーしています。
例28-3では、データベースmyhost
に接続およびログインし(最初の4行)、FTPメソッドcd
およびls
を使用して、それぞれフォルダをナビゲートおよびリスト表示しています。フォルダ/sys/asm/DATA/dbs
内でFTPコマンドget
を使用して、ファイルt_db1.f
およびt_ax1.f
がローカルのファイル・システムの現行のフォルダにコピーします。続いてFTPコマンドput
を使用して、ファイルmy_db2.f
をローカルのファイル・システムからフォルダ/sys/asm/DATA/dbs
にコピーしています。
データベース管理者はOracle Automatic Storage Management(Oracle ASM)ファイルをデータベース・サーバー間でコピーしたり、データベースとローカルのファイル・システムの間でコピーできます。例28-4は2つのデータベース間でのコピーを示しています。この場合、proxy
FTPクライアント・メソッドを使用できます。proxy
メソッドを使用すると、2つの異なるリモートFTPサーバーに直接接続できます。
例28-4では、Oracle ASMファイルをデータベース間でコピーしています。接尾辞1
が付いた語はデータベースserver1
に対応しています。接尾辞2
が付いた語はデータベースserver2
に対応しています。一部のFTPクライアントでは、入力したパスワードが画面に表示されることがあります。パスワードが他人の目に触れないよう、十分注意してください。
例28-4の内容:
1行目でOracle XML DB FTPサーバーserver1
へのFTP制御接続を開きます。
2から4行目で、データベース管理者がUSERNAME1
としてserver1
にログインします。
5行目でserver1
の/sys/asm/DATAFILE/MFG/DATAFILE
にナビゲートします。
6行目で第2のデータベース・サーバーserver2
へのFTP制御接続を開きます。この時点で、FTPコマンドproxy ?
を発行して、第2の接続で利用できるFTPコマンドを参照することができます。(これは表示されていません。)
7から9行目で、データベース管理者がUSERNAME2
としてserver2
にログインします。
10行目でserver2
の/sys/asm/DATAFILE/MFG/DATAFILE
にナビゲートします。
11行目で、Oracle ASMファイルdbs2.f
を、server2
から、server1
上のOracle ASMファイルtmp1.f
にコピーします。
12行目で、Oracle ASMファイルdbs1.f
を、server1
から、server2
上のOracle ASMファイルtmp2.f
にコピーします。
例28-3 Oracle ASMフォルダのナビゲート
ftp> open myhost 7777
ftp> user system
Password required for SYSTEM
Password: password
ftp> cd /sys/asm
ftp> ls
DATA
RECOVERY
ftp> cd DATA
ftp> ls
dbs
MFG
ftp> cd dbs
ftp> ls
t_dbl.f
t_axl.f
ftp> binary
ftp> get t_dbl.f, t_axl.f
ftp> put my_db2.f
例28-4 FTP proxyメソッドによる、Oracle ASMファイルのデータベース間転送
1 ftp> open server1 port1 2 ftp> user username1 3 Password required for USERNAME1 4 Password: password-for-username1 5 ftp> cd /sys/asm/DATAFILE/MFG/DATAFILE 6 ftp> proxy open server2 port2 7 ftp> proxy user username2 8 Password required for USERNAME2 9 Password: password-for-username2 10 ftp> proxy cd /sys/asm/DATAFILE/MFG/DATAFILE 11 ftp> proxy put dbs2.f tmp1.f 12 ftp> proxy get dbs1.f tmp2.f
Oracle XML DBの構成ファイルxdbconfig.xml
を使用して、任意のポートでリスニングするようにFTPを構成できます。FTPはデフォルトで、非標準の保護されないポートでリスニングを行います。
標準ポート21でFTPを使用するには、データベース管理者が次のことを実行する必要があります。
関連項目:
リスナーのパラメータおよびファイルlistener.ora
の詳細は『Oracle Database Net Servicesリファレンス』を参照してください。
特権ポートの詳細は『Oracle Database Net Servicesリファレンス』の、ポート番号の制限に関する項を参照してください。
11gリリース2 (11.2)以降のOracle Databaseでは、(Internet Protocol Version 4に加えて) Internet Protocol Version 6 (IPv6)がサポートされています。
例28-5に、FTPでIPv6アドレス2001::0db8:ffff:ffff:ffff
に接続する方法を示します。
関連項目:
IPv6の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。
例28-5 IPv6を使用したFTP接続
ftp> open 2001::0db8:ffff:ffff:ffff 1521 Connected to 2001::0db8:ffff:ffff:ffff. 220- xmlhost.example.com Unauthorized use of this FTP server is prohibited and may be subject to civil and criminal prosecution. 220- xmlhost.example.com FTP server (Oracle XML DB/Oracle Database) ready. User (2001::0db8:ffff:ffff:ffff:(none)): username 331 pass required for USERNAME Password: password-for-username 230 USERNAME logged in ftp>
Oracle XML DBプロトコル・サーバーでは、FTPのセッション管理も提供します。FTPは、新しいコマンドの入力をショート・ウェイトした後、プロトコル・レイヤーに戻ります。
このショート・ウェイト時間は、Oracle XML DB構成ファイルのcall-timeout
パラメータを変更することによって構成できます。通信量が多いサイトでは、call-timeout
を短くし、より多くの接続を確立できるようにする必要があります。接続で新しいデータが受信されると、FTPサーバーは最新のデータを使用して再起動されます。そのため、FTPが長時間実行する性質を持っていても、プロトコル・サーバーに確立可能な接続の数には影響しません。
関連項目:
Oracle XML DBパラメータの構成の詳細は、「xdbconfig.xmlを使用したOracle XML DBの構成」を参照してください
頻繁にサーバーから切断され、次の操作を実行する前に、再接続してディレクトリ全体を検索する必要がある場合は、FTPセッションに対するデフォルトのタイムアウト値を変更する必要がある可能性があります。この時間の経過後もセッションがアイドル状態である場合、そのセッションは切断されます。
タイムアウトの値(デフォルト= 6000センチセカンド)を大きくするには、次のように構成ドキュメントを変更した後、データベースを再起動します。
例28-6 FTPセッションのデフォルトのタイムアウト値の変更
DECLARE newconfig XMLType; BEGIN SELECT XMLQuery('copy $i := $p1 modify (for $j in $i/xdbconfig/sysconfig/protocolconfig/ftpconfig/session-timeout return replace value of node $j with $p2) return $i' PASSING DBMS_XDB_CONFIG.cfg_get() AS "p1", 123456789 AS "p2" RETURNING CONTENT) INTO newconfig FROM DUAL; DBMS_XDB_CONFIG.cfg_update(newconfig); END;/ COMMIT;
listener.ora
でHOSTNAME
がlocalhost
.と構成されているサーバーにリモートから接続する場合、FTPをパッシブ・モードで使用しないでください。 または
127.0.0.1
サーバー・ファイルlistener.ora
で指定されているHOSTNAME
がlocalhost
または127.0.0.1
の場合、サーバーはローカルでの使用専用に構成されています。FTPをパッシブ・モードで使用してサーバーにリモートから接続しようとすると、FTPクライアントに障害が発生します。これはサーバーがIPアドレス127.0.0.1
(HOSTNAME
から導出)をクライアントに渡すためで、これによりクライアントはサーバーでなく自分自身に接続しようとしてしまいます。
Oracle XML DBは、RFC2616仕様に定義されているHyperText Transfer Protocol(HTTP)のHTTP 1.1を実装します。
Oracle XML DBプロトコル・サーバーのOracle XML DB HTTP(S)コンポーネントは、いくつかのオプション機能を除いて、RFC2616仕様を実装します。
サポートされていないオプションのHTTP(S)機能は、次のとおりです。
gzip
および圧縮転送エンコーディング
バイト範囲ヘッダー
TRACE
メソッド(プロキシ・エラーのデバッグに使用します。)
キャッシュ制御ディレクティブ(コンテンツの期限日を指定する必要があります。一般には使用されません。)
TE、Trailer、VaryおよびWarningヘッダー
弱いエンティティ・タグ
Web共通ログ・フォーマット
マルチホームWebサーバー
関連項目:
RFC 2616、HTTP 1.1プロトコル仕様(http://www.ietf.org/rfc/rfc2616.txt
)
Oracle XML DBでは、Oracle XML DBリポジトリにアクセスするための複数のHTTP(S)クライアント・メソッドがサポートされています。
OPTIONS
- 利用できる通信オプションについての情報を取得します。
GET
- 文書/データ(ヘッダーとも)を取得します。
HEAD
- 文書の本文なしで、ヘッダーのみを取得します。
PUT
- データをリソースに格納します。
DELETE
- リソースを削除します。
これらのHTTP(S)メソッドのセマンティクスはWebDAVに従っています。サーブレットとWebサービスは、POST
などこの他のHTTP(S)メソッドをサポートする場合があります。
関連項目:
WebDAVに関係する、サポートされているHTTP(S)クライアント・メソッドは、「Oracle XML DBによってサポートされるWebDAVクライアント・メソッド」を参照してください。
Oracle XML DBの構成ファイルxdbconfig.xml
を使用して、任意のポートでリスニングするようにHTTP(S)を構成できます。HTTP(S)はデフォルトで、非標準の保護されないポートでリスニングを行います。
HTTPまたはHTTPSを標準ポート(HTTPでは80、HTTPSでは443)で使用するには、データベース管理者が次のことを実行する必要があります。
関連項目:
リスナーのパラメータおよびファイルlistener.ora
の詳細は『Oracle Database Net Servicesリファレンス』を参照してください。
特権ポートの詳細は『Oracle Database Net Servicesリファレンス』の、ポート番号の制限に関する項を参照してください。
11gリリース2 (11.2)以降のOracle Databaseでは、(Internet Protocol Version 4に加えて) Internet Protocol Version 6 (IPv6)がサポートされています。URL内のIPv6アドレスは、大カッコ([]
)で囲みます。
次に例を示します。
http://[2001::0db8:ffff:ffff:ffff]:8080/
関連項目:
IPv6の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。
正しく構成すれば、Oracle XML DBリポジトリにHTTPSを使用してセキュアにアクセスできます。
構成情報については「セキュアHTTP(HTTPS)の構成」 を参照してください。
注意:
Oracle DatabaseをMicrosoft Windows XP Service Pack 2 (SP2)にインストールしている場合、Oracle XML DBリポジトリへのWebDAVアクセスには、HTTPSを使用するか、Windows XPのレジストリを適切に変更する必要があります。後者の詳細は、http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx#XSLTsection129121120120
を参照してください。
オプションの構成パラメータexpire
では、HTTP Expires
ヘッダーを指定します。このヘッダーは、HTTPクライアントへのディレクティブとして機能し、URLの期限切れ日時を指定します。
URLのターゲット文書は、キャッシュされている場合、この期限切れ日時が経過するまで、サーバーからでなくクライアント・キャッシュからフェッチできます。この日時を過ぎると、キャッシュ・コピーは期限切れとなり、ソース(サーバー)から新しいコピーを取得する必要があります。
expire
構成要素で使用されるExpires
ヘッダー用のThe Oracle XML DB構文は、 Apacheモジュールmod_expires
のExpiresDefault
ディレクティブ用に定義されている代替構文のサブセットです。この構文は、http://httpd.apache.org/docs/2.0/mod/mod_expires.html#AltSyn
を参照してください。
Oracle XML DBでは、ExpiresDefault
構文に対して次の制限があります。
<base>
としてaccess
を使用できません。now
およびmodification
のみ使用が許可されます。
<type>
値は、期間の経過順に指定する必要があります。たとえば、1年は1か月よりも期間が長いため、year
はmonth
の後ろではなく、前に指定する必要があります。
異なる<type>
値は、それぞれ最大1回使用できます。たとえば、複数のyear
エントリや複数のday
を指定することはできません。
オプションの構成パラメータallow-repository-anonymous-access
は、ロック解除されたANONYMOUS
ユーザー・アカウントを使用した、Oracle XML DBリポジトリ・データへの匿名HTTPアクセスが許容されるかどうかを示します。デフォルト値はfalse
で、これはリポジトリ・データへの非認証アクセスがブロックされることを意味します。
リポジトリへのHTTPアクセスを許可するには、このパラメータをtrue
に設置して、ANONYMOUS
ユーザー・アカウントをロック解除する必要があります。
注意:
リポジトリへの匿名アクセスを許可することには、潜在的なセキュリティ・リスクがあります。
パラメータallow-repository-anonymous-access
は、サーブレットを使用したリポジトリへの匿名アクセスは制御しません。各サーブレットには、アクセスを制御する独自のsecurity-role-ref
パラメータ値があります。
注意:
ユーザー・アカウントANONYMOUS
がマルチテナント・コンテナ・データベース(CDB)に対してロックされている場合、そのCDBにプラグインされているプラガブル・データベース(PDB)に対してANONYMOUS
をロックまたはロック解除しても、ANONYMOUS
によるPDBへのアクセスには、影響を及ぼしません。
関連項目:
パラメータallow-repository-anonymous-access
の詳細は、表28-3を参照してください。
Oracle XML DBパラメータの構成の詳細は、「xdbconfig.xmlを使用したOracle XML DBの構成」を参照してください
security-role-ref
パラメータの詳細は、「Oracle XML DBサーブレットの構成」を参照してください。
Oracle XML DBでは、Javaサーブレットの使用がサポートされています。その動作をカスタマイズするパラメータとともに、Oracle XML DBの構成ファイルに一意の名前でそれぞれ登録する必要があります。それをコンパイルして、データベースにロードする必要があります。そのサーブレット名をパターンに関連付ける必要があります。
このパターンは、JavaサーブレットApplication Program Interface (API)バージョン2.2に記述されているとおり、*.jsp
などの拡張子または/a/b/c
や/sys/*
などのパス名になります。
HTTP(S)リクエストの処理中、そのリクエストに対するパス名は登録済のパターンと照合されます。一致する場合、プロトコル・サーバーは適切な初期化パラメータを使用して対応するサーブレットを起動します。Java仮想マシン(JVM)が起動され、これによりJavaメソッドが起動されて、サーブレットの初期化、レスポンス・オブジェクトとリクエスト・オブジェクトの作成、サーブレットへのこれらの受渡しが行われて、サーブレットが実行されます。
PL/SQLゲートウェイを使用して、WebアプリケーションをPL/SQLに完全に実装できます。PL/SQLゲートウェイの実装には、mod_plsqlと埋込みゲートウェイの2つがあります。
mod_plsql: HTTP(S)を使用してPL/SQLストアド・プロシージャを起動できる、Oracle HTTP Serverのプラグインです。Oracle HTTP Serverは、Oracle Fusion MiddlewareにもOracle Databaseにも含まれるコンポーネントです。Oracle HTTP ServerとOracle XML DBプロトコル・サーバーのHTTPコンポーネントとは混同しないでください。
埋込みPL/SQLゲートウェイ: Oracle XML DB HTTPリスナーで実行されるゲートウェイの実装です。
PL/SQLゲートウェイ(どちらか一方の実装)を使用して、ストアド・プロシージャを識別し、それにパラメータ値を与えるURL形式で、WebブラウザからHTTP(S)リクエストが送信されます。ゲートウェイはURLを変換し、ストアド・プロシージャをパラメータ値とともに呼び出し、出力(通常はHTML)をWebブラウザ・クライアントに戻します。
埋込みPL/SQLゲートウェイを使用すると、PL/SQLベースのWebアプリケーションのインストール、構成、および管理が簡略化されます。埋込みゲートウェイは、Oracle HTTP ServerではなくOracle XML DBプロトコル・サーバーを使用します。構成は、Oracle XML DBの構成ファイルxdbconfig.xml
で定義されます。ただし、埋込みゲートウェイの構成方法としては、xdbconfig.xml
ファイルを編集するのではなく、PL/SQLパッケージDBMS_EPG
のプロシージャを使用する方法をお薦めします。
関連項目:
埋込みPL/SQLゲートウェイの使用と構成方法の詳細は、『Oracle Database開発ガイド』を参照してください。
xdbconfig.xml
での埋込みゲートウェイの構成定義の詳細は、 Oracle XML DBの管理を参照してください。
PL/SQLゲートウェイの使用に関する概念的な情報は、『Oracle Fusion Middleware Oracle HTTP Server管理者ガイド』を参照してください。
mod_plsqlの詳細は、『Oracle Fusion Middleware mod_plsqlユーザーズ・ガイド』を参照してください。
クライアントがURLにマルチバイト・データを含めて送信する場合、RFC 2718では、クライアントが%
HH
フォーマット(HH
はUTF-8エンコーディングでのそのバイト値の16進文字列)を使用してURLを送信する必要があることが規定されています。
次に、HTTP(S)またはWebDAVコンテキストでOracle XML DBに送信可能なURLの例を示します。
http://urltest/xyz%E3%81%82%E3%82%A2 http://%E3%81%82%E3%82%A2 http://%E3%81%82%E3%82%A2/abc%E3%81%86%E3%83%8F.xml
Oracle XML DBは、リクエストされたURL、IF
ヘッダー内のすべてのURL、DESTINATION
ヘッダー内のすべてのURL、およびマルチバイト・データを含むREFERRED
ヘッダー内のすべてのURLを処理します。
default-url-charset
構成パラメータを使用すると、ASCII以外の文字を含む、非準拠形式のURLを使用したクライアントからのリクエストも受け入れることができます。そうした文字を含むリクエストが失敗する場合は、この値をクライアント環境のネイティブなキャラクタ・セットに設定してみます。このようなURLフィールドで使用されるキャラクタ・セットは、IANAキャラクタ・セット名で指定する必要があります。
default-url-charset
は、表記方法に従っていないURLのエンコーディングを制御します。Content-Type
のキャラクタ・セットを送信しない表記方法に従っていないクライアントが使用されていないかぎり、このパラメータを設定する必要はありません。
関連項目:
RFC 2616、HTTP 1.1プロトコル仕様(http://www.ietf.org/rfc/rfc2616.txt
)
Oracle XML DBパラメータの構成の詳細は、「xdbconfig.xmlを使用したOracle XML DBの構成」を参照してください
HTTPサーバーに渡されるURLに含まれるASCII以外の文字をUTF-8
に変換し、%
HH
フォーマットを使用してエスケープします。ここで、HH
は、バイト値の16進数文字列です。
柔軟性を得るために、Oracle XML DBプロトコル・サーバーは、受信URLを解析するときに、そのURLが次のいずれかのキャラクタ・セットでエンコードされているかどうかを、ここに示す順序のとおりにテストします。
UTF-8
リクエストのContent-Type
フィールドのCharsetパラメータ(指定されている場合)
default-url-charset
構成パラメータのキャラクタ・セット(指定されている場合)
データベースのキャラクタ・セット
関連項目:
Oracle XML DBパラメータの構成の詳細は、「xdbconfig.xmlを使用したOracle XML DBの構成」を参照してください
HTTP(S)を使用して転送されるデータで使用されるキャラクタ・セットを制御できます。
HTTP(S) Request Bodyのキャラクタ・セットは、簡単ですが多少複雑なアルゴリズムを使用して決定されます。
Content-Typeヘッダーを評価します。Content-Typeヘッダーにcharset値が指定されている場合は、指定されたcharsetを使用します。
ドキュメントのMIMEタイプを次のように評価します。
MIMEタイプが*/xml
の場合、キャラクタ・セットは次のように決定されます。
BOMもエンコーディング宣言も存在しない場合は、UTF-8
を使用します。
BOMが存在する場合は、UTF-16
を使用します。
エンコーディング宣言が存在する場合は、指定されたエンコーディングを使用します。
MIMEタイプがtext
の場合は、ISO8859-1
を使用します。
MIMEタイプが、*/xml
でもtext
でもない場合は、データベース・キャラクタ・セットを使用します。
HTTP(S)とSQL間またはHTTP(S)とFTP間では処理が異なります。テキスト・ドキュメントの場合、IETF.org RFC 2616: HTTP 1.1プロトコル仕様で指定されているとおり、デフォルトはISO8859-1です。
Oracle XML DB HTTP Serverで生成されるレスポンスは、リクエストのAccept-Charset
フィールドに指定されているキャラクタ・セットです。
Accept-Charset
には、キャラクタ・セットのリストを指定できます。Oracle XML DBは、q値に基づいて、変換が不要なキャラクタ・セットのいずれかを選択します。選択されるキャラクタ・セットが、最大のq値を持つキャラクタ・セットではない場合があります。変換が不要なものが見つからない場合、Oracle XML DBでは、最大のq値に基づいて変換を行います。
Web Distributed Authoring and Versioning (WebDAV)は、インターネットを経由したOracle XML Repositoryへのファイル・システム・インタフェースをユーザーに提供するために、Oracle XML DBによって使用されるIETF標準のプロトコルです。WebDAVサーバー・フォルダにアクセスする最も一般的な方法は、Microsoft Windowsを使用して「Webフォルダ」を使用する方法です。
WebDAVはHTTP 1.1プロトコルの拡張で、HTTPサーバーをファイル・サーバーとして使用することを可能にします。WebDAVを使用すると、クライアントは、メソッド、ヘッダー、Request BodyフォーマットおよびResponse Bodyフォーマットの一貫したセットを介して、リモートWebコンテンツのオーサリングを実行できます。たとえば、DAV対応のエディタは、ファイル・システムとまったく同様にHTTP/WebDAVサーバーと対話できます。WebDAVは、リソースの格納および取出し、リソース・コレクションのコンテンツの作成およびリスト、同時アクセスに対するリソースの調整式ロックおよびリソース・プロパティの設定および取出しを行う操作を提供します。
Oracle XML DBでは、WebDAVのフォルダリングおよびアクセス制御機能がサポートされます。フォルダリングはRFC2518で規定されています。
WebDAVは、HTTP(S)プロトコルへの拡張機能のセットで、リモートWebサーバーのファイルを共有、編集および管理できます。
関連項目:
RFC 2518: WebDAVプロトコル仕様(http://www.ietf.org/rfc/rfc2518.txt
)
Oracle XML DBでは、いくつかの機能を除いてRFC2518仕様がサポートされます。メソッドCOPY
、MOVE
およびDELETE
については、RFC5842仕様で説明するように、リソースのバインディングもサポートされます。
Oracle XML DBでサポートされないRFC2518からのWebDAV機能は、次のとおりです。
書込みがロックされたnullリソース(ロックnullリソース)の名前をフォルダ名として使用すると、ファイル・システムで長さがゼロのリソースとして表現されるため、このようにすることはサポートされていません。これはオプション機能です。
メソッドLOCK
については、深さに無限を指定して、リソースとそのすべての子孫を同時にロックすることはできません。この機能はオプションではありませんが、Oracle XML DBではサポートされていません。
さらに、メソッドCOPY
、MOVE
およびDELETE
については、RFC5842のセクション2、「Binding Extensions to Web Distributed Authoring and Versioning (WebDAV)」で説明されているように、Oracle XML DBでリソースのバインディングがサポートされます。バインディングは、指定されたフォルダのリソースに対するURIのマッピングです。
関連項目:
ロックnullリソースの詳細は、RFC2518仕様のセクション7.4 (http://www.webdav.org/specs/rfc2518.html#rfc.section.7.4
)を参照してください。
深さが無限のロックの詳細は、RFC2518仕様のセクション9.2 (http://www.webdav.org/specs/rfc2518.html#rfc.section.9.2
)を参照してください。
リソース・バインディングの詳細は、RFC5842仕様のセクション2 (https://tools.ietf.org/html/rfc5842#section-2
)を参照してください。
Oracle XML DBでは、Oracle XML DBリポジトリにアクセスするための複数のHTTP(S)/WebDAVクライアント・メソッドがサポートされています。
PROPFIND
(WebDAV固有) - リソースのプロパティを取得します。
PROPPATCH
(WebDAV固有) - リソースのプロパティを設定または削除します。
LOCK
(WebDAV固有) - リソースをロックします(ロックの作成またはリフレッシュ)。
UNLOCK
(WebDAV固有) - リソースをロック解除します(ロックの削除)。
COPY
(WebDAV固有) - リソースをコピーします。
MOVE
(WebDAV固有) - リソースを移動します。
MKCOL
(WebDAV固有) - フォルダ・リソース(コレクション)を作成します。
関連項目:
サポートされているその他のHTTP(S)クライアント・メソッドは、「サポートされているHTTP(S)クライアント・メソッド」を参照してください
WebDAV権限の詳細は、「権限」を参照してください
Microsoft Windows XP Service Pack 2 (SP2)の場合、Oracle XML DBリポジトリへのWebDAVアクセスには、セキュアな接続(HTTPS)を使用するか、Windows XPのレジストリを適切に変更する必要があります。
関連項目:
Windows XPのレジストリに加える必要な変更の詳細は、http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx#XSLTsection129121120120
を参照してください。
Windows 2000でWebフォルダを作成して、Oracle XML DBリポジトリで使用します。
Windows 2000でWebフォルダを作成します。
これで、Windowsフォルダへのアクセスと同様に、Oracle XML DBリポジトリにアクセスできます。
Windows Explorerを使用して、ローカルのハード・ドライブからOracle Databaseにフォルダを挿入できます。
図28-3では、これを説明しています。
Windows Explorerは、WebDAVプロトコルをサポートしています。WebDAVはHTTP標準の拡張で、HTTPサーバーがファイル・サーバーとして機能できる動詞が追加されています。
Windows Explorerのコピー操作やFTPの入力コマンドを使用して、多数の文書をOracle XML DBリポジトリに転送する場合、それぞれのput
またはpost
コマンドは、個別の基本操作として扱われます。これにより、ファイル転送のうちのいずれかが失敗してもクライアントに混乱が生じません。また、プロトコルを介して文書に加えられた変更は、リクエストが処理されるとすぐに、他のユーザーも参照できます。
脚注の凡例
脚注1:BOMとは、後続のバイト・ストリームの順序を示すUnicode標準のシグネチャです。