C Oracle REST Data Servicesの構成ファイルについて

この項では、Oracle REST Data Servicesの構成ファイルについて説明します。

トピック:

C.1 構成ファイルの検索

構成ファイルの現在の場所を表示するには、次のようにconfigdirコマンドを使用します。

java -jar ords.war configdir

構成フォルダが構成されていない場合は、「config.dir設定が設定されていません」というメッセージが表示されます。設定されている場合は、現在の設定値が表示されます。

C.2 構成ファイルの場所を設定する

構成フォルダの場所を変更するには、次のようにconfigdirコマンドを使用します。

java -jar ords.war configdir </path/to/config>

説明:

  • </path/to/config>は、構成ファイルが格納されている場所です。

C.3 構成フォルダの構造を理解する

構成フォルダの構造は次のとおりです。

    ./
    |
    +-defaults.xml
    +-apex.properties*
    +-url-mapping.xml
    |
    +conf/
      |      
      +-apex.xml
      +-apex_al.xml
      +-apex_rt.xml
      +-apex_pu.xml
      |
      ...
      +-(db-name).xml
      +-(db-name)_al.xml
      +-(db-name)_rt.xml
      +-(db-name)_pu.xml

defaults.xmlには、すべてのデータベース接続に適用されるグローバル設定が格納されています。

conf/<db-name>.xmlには、特定のデータベース接続(たとえば、デフォルトのapex接続)に固有の設定が格納されています。<db-name>は、データベース接続の名前です。

データベース接続がOracle Application ExpressのRESTfulサービスを使用する場合、_al.xml_rt.xmlおよび_pu.xmlなどの名前のファイルが、APEX_LISTENERAPEX_REST_PUBLIC_USERおよびORDS_PUBLIC_USERのデータベース・ユーザー用の構成をそれぞれ格納します。

データベース接続がOracle REST Data ServicesのRESTfulサービスを使用する場合、<db-name>_pu.xmlファイルがORDS_PUBLIC_USERデータベース・ユーザーの構成を格納します。

C.4 構成ファイルの形式を理解する

構成ファイルは、各構成設定がキーおよびそれに対応する値からなる標準のJava XMLプロパティ・ファイル形式を使用します。defaults.xmlファイルの例を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    
<entry key="db.connectionType">basic</entry>
<entry key="db.hostname">localhost</entry>
<entry key="db.port">1521</entry>
<entry key="db.sid">orcl</entry>
    
<entry key="jdbc.DriverType">thin</entry>
<entry key="jdbc.InitialLimit">3</entry>
<entry key="jdbc.MinLimit">1</entry>
<entry key="jdbc.MaxLimit">10</entry>
<entry key="jdbc.MaxStatementsLimit">10</entry>
<entry key="jdbc.InactivityTimeout">1800</entry>
<entry key="jdbc.statementTimeout">900</entry>
<entry key="jdbc.MaxConnectionReuseCount">1000</entry>
    
</properties>

C.4.1 url-mapping.xmlファイルの形式を理解する

複数のデータベースが構成されている場合、url-mapping.xmlファイルにリクエストを適切なデータベースにルーティングするルールが格納されます。url-mapping.xmlファイルの例を次に示します。

<pool-config xmlns="http://xmlns.oracle.com/apex/pool-config">
 <pool name="sales_db"
   base-path="/sales"
   workspace-id="sales_rest"/>
</pool-config>

C.5 構成可能なパラメータを理解する

表C-1に、defaults.xmlおよび(db-name).xml構成ファイルの編集可能なパラメータを示します。

注意:

構成ファイルの編集には、Oracle REST Data Servicesのコマンドライン・インタフェースおよびOracle SQL DeveloperのOracle REST Data Services Administrationを使用することをお薦めします。

表C-1 Oracle REST Data Servicesの構成ファイルのパラメータ

キー 説明 設定タイプ

apex.docTable

文字列

このパラメータは非推奨です。かわりにowa.docTableパラメータを使用してください。

MYDOCTABLE

プール固有

cache.caching

ブール値

サポートされている値:

  • true

  • false (デフォルト)

キャッシングを有効にするにはtrueに設定する必要があり、procedureNameListにプロシージャが必要です。

true

グローバル

cache.directory

文字列

キャッシュ・ファイルのディレクトリの場所。

C:\data\cachefiles

グローバル

cache.duration

文字列

サポートされている値:

  • days (デフォルト)

  • minutes

  • hours

期限切れキャッシュ・タイプの場合は必須。

days

グローバル

cache.expiration

数値

期限切れキャッシュ・タイプの場合は必須。

デフォルトは7です。

7

グローバル

cache.maxEntries

数値

LRUキャッシュ・タイプの場合は必須。

デフォルトは500です。

500

グローバル

cache.monitorInterval

数値

期間を分単位で指定します。

キャッシュ・タイプが期限切れの場合、Oracle REST Data Servicesは、期限の切れたファイルのすべてのキャッシュをNN分間隔でチェックします。たとえば、monitorIntervalが60の場合、キャッシュは60分ごとにチェックされます。

デフォルトは60です。

60

グローバル

cache.procedureNameList

文字列

ファイルのキャッシュを許可するプロシージャ名を指定します。

プロシージャ名には、ワイルドカード文字のアスタリスク(*)または疑問符(?)を含めることができます。0文字以上の文字の置換にアスタリスク(*)を、任意の1文字の置換に疑問符(?)を使用します。

各プロシージャ名は、カンマで区切る必要があります。

p, download_file

グローバル

cache.type

文字列

サポートされている値:

  • expire

  • lru (デフォルト)

lru

グローバル

db.connectionType

文字列

接続のタイプ。サポートされている値:

  • basic

  • tns

  • customurl

basic

プール固有

db.customURL

文字列

データベースに接続するためのJDBC URL接続を指定します。

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=myhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ora111.example.com)))

プール固有

db.hostname

文字列

Oracleデータベースのホスト・システムを指定します。

myhostname

プール固有

db.password

文字列

指定されたデータベース・ユーザーのパスワードを指定します。暗号化して保存できるように、パスワードの先頭に感嘆符を含めます。

!password4user

プール固有

db.port

数値

データベース・リスナーのポートを指定します。

1521

プール固有

db.servicename

文字列

データベースのネットワーク・サービス名を指定します。

ora111.example.com

プール固有

db.serviceNameSuffix

文字列

プールがCDBを指すこと、およびそのCDBに接続しているPDBをOracle REST Data Servicesによってアドレス可能にする必要があることを指定します(「Oracle REST Data Servicesによって、すべてのPDBをアドレス可能にする(プラガブル・マッピング)」を参照)。

apex_pu

プール固有

db.sid

文字列

データベースの名前を指定します。

ora111

プール固有

db.tnsAliasName

文字列

tnsnames.oraファイル内の名前と一致するTNSの別名を指定します。

MY_TNSALIAS

プール固有

db.tnsDirectory

文字列

tnsnames.oraファイルのディレクトリの場所。

C:\ORACLE\NETWORK\ADMIN

プール固有

db.username

文字列

接続のデータベース・ユーザーの名前を指定します。

APEX_PUBLIC_USER

プール固有

debug.printDebugToScreen

ブール値

ブラウザ上でエラーメッセージを表示するかどうかを指定します。

サポートされている値:

  • true

  • false (デフォルト)

false

グローバル

error.keepErrorMessages

ブール値

エラー・メッセージを保持するかどうかを指定します。

サポートされている値:

  • true

  • false (デフォルト)

true

グローバル

error.maxEntries

数値

保持するエラー・メッセージの合計数を指定します。

デフォルトは50です。

50

グローバル

error.externalPath

文字列

カスタム・エラー・ページが格納されているフォルダのパスを指定します。

/path/to/error/pages/folder/

グローバル

icap.port

数値

ウイルス・スキャン・ファイルへのInternet Content Adaptation Protocol (ICAP)ポートを指定します。

icap.portの値は必須です。

5555

グローバル

icap.server

文字列

ウイルス・スキャン・ファイルへのInternet Content Adaptation Protocol (ICAP)サーバーの名前を指定します。

icap.serverの値は必須です。

servername

グローバル

jdbc.DriverType

文字列

JDBCドライバ・タイプの指定。サポートされている値:

  • thin

  • oci8

thin

プール固有

jdbc.InactivityTimeout

数値

閉じられる前に、使用可能な接続がアイドル状態を維持できる時間を指定します。非アクティブな接続のタイムアウトは秒単位です。

デフォルトは1800です。

1800

プール固有

jdbc.InitialLimit

数値

作成される接続の数の初期サイズを指定します。

デフォルトは3です。(デフォルトは低いため、ほとんどの本番環境ではおそらくこれより高く設定すべきです。)

10

プール固有

jdbc.MaxConnectionReuseCount

数値

破棄され、新規の接続と置き換わる前に、接続を再利用する最大回数を指定します。

デフォルトは1000です。

1000

プール固有

jdbc.MaxLimit

数値

接続の最大数を指定します。

デフォルトは10です。(一部の本番環境では低すぎる可能性があります。)

20

プール固有

jdbc.auth.enabled

ブール値

PL/SQLゲートウェイ・コールをデータベース・ユーザーを使用して認証できるようにするかどうかを指定します。値がtrueの場合、この機能は有効になります。値がfalseの場合、この機能は無効になります。デフォルト値はfalseです。この機能は使用しないことをお薦めします。この機能はmod_plsqlから移行中の顧客を支援する目的でのみ使用されます。

false

プール固有

jdbc.MaxStatementsLimit

数値

接続ごとにキャッシュする文の最大数を指定します。

デフォルトは10です。

10

プール固有

jdbc.MinLimit

数値

接続の最小数を指定します。

デフォルトは1です。

1

プール固有

jdbc.statementTimeout

数値

流用した(使用中の)接続が、中止および再要求とみなされるまでの、未使用の時間を指定します。中止された接続のタイムアウトは秒単位です。

デフォルトは900です。

900

プール固有

log.logging

ブール値

ログ・メッセージを保持するかどうかを指定します。

サポートされている値:

  • true

  • false (デフォルト)

true

グローバル

log.maxEntries

数値

保持するログ・メッセージの合計数を指定します。

デフォルトは50です。

50

グローバル

log.procedure

ブール値

プロシージャをログに記録するかどうかを指定します。

サポートされている値:

  • true

  • false (デフォルト)

false

グローバル

misc.defaultPage

文字列

表示するデフォルトのページを指定します。一般的には、Oracle REST Data Servicesのホームページのapexが使用されます。

apex

プール固有

misc.pagination.maxRows

数値

RESTfulサービスの処理で問合せから戻される、結果セットのネストしたカーソルから戻される行の最大数を指定します。リソースがページ分割されているかどうかにかかわらず、SQL問合せを使用して生成されるすべてのRESTfulサービスに影響します。

デフォルトは10000です。

300

プール固有

owa.docTable

文字列

ファイルのアップロードで使用されるドキュメント表の名前を指定します。

デフォルト値は、FLOWS_FILES.WWV_FLOW_FILE_OBJECTS$です。

注意:

APEX 4.x以上では、このパラメータを使用しないでください。

MYDOCTABLE

プール固有

procedure.postProcess

文字列

URLで指定されたプロシージャを実行した後に実行するプロシージャ名(複数可)を指定します。複数のプロシージャ名はカンマで区切ります。

SCHEMA1.SUBMIT.REQUEST,FINISHTASK

プール固有

procedure.preProcess

文字列

URLで指定されたプロシージャを実行する前に実行するプロシージャ名(複数可)を指定します。複数のプロシージャ名はカンマで区切ります。

SCOTT.PREPROC1, INITIALIZE, PKG1.PROC

プール固有

procedure.rest.preHook

文字列

各Oracle REST Data ServicesベースのRESTサービスをディスパッチする前に起動するファンクションを指定します。このファンクションでは、データベース・セッションの構成の実行や、リクエストに対する追加の検証または認可を実行できます。ファンクションがtrueを返した場合、リクエストの処理は続行されます。ファンクションがfalseを返した場合、リクエストの処理は異常終了し、「HTTP403禁止」ステータスが返されます。

MYAPP.VALIDATE_REST_CALL

プール固有

security.disableDefaultExclusionList

ブール値

この値がtrueに設定されている場合、Oracle REST Data Servicesの内部除外リストは適用されません。

注意:Oracle REST Data Servicesの内部除外リストによって、ユーザーの次へのアクセスがブロックされます。
  • sys.*
  • dbms_*
  • utl_*
  • owa_*
  • owa.*
  • htp.*
  • htf.*
  • wpg_docload.*

サポートされている値:

  • true
  • false(デフォルト)

この値をtrueに設定しないことをお薦めします。つまり、デフォルトの内部除外リストを無効にしないでください。可能な例外は、デバッグ目的での内部除外リストの一時的な無効のみです。

false

グローバル

security.exclusionList

文字列

ブラウザから直接実行することが禁じられているプロシージャ、パッケージまたはスキーマ名のパターンを指定します。

プロシージャ名には、ワイルドカード文字のアスタリスク(*)または疑問符(?)を含めることができます。0文字以上の文字の置換にアスタリスク(*)を、任意の1文字の置換に疑問符(?)を使用します。

注意: 複数のパターンはカンマで分割します。

customer_account,bank*, employe?

グローバル

security.inclusionList

文字列

ブラウザから直接実行することが許可されているプロシージャ、パッケージまたはスキーマ名のパターンを指定します。

プロシージャ名には、ワイルドカード文字のアスタリスク(*)または疑問符(?)を含めることができます。0文字以上の文字の置換にアスタリスク(*)を、任意の1文字の置換に疑問符(?)を使用します。

注意: 複数のパターンはカンマで分割します。

apex, p, v, f, wwv_*, y*, c*

グローバル

security.maxEntries

数値

キャッシュするプロシージャ検証の最大数を指定します。デフォルトは2000です。各リクエストで検証プロシージャを強制的に起動するには、この値を0に設定します。

2000

グローバル

security.requestAuthenticationFunction

文字列

URLでリクエストされたプロシージャの処理を許可するかどうかを判断する認証ファンクションを​​指定します。このファンクションは、プロシージャが許可されている場合はtrueを返し、そうでない場合はfalseを返します。falseが返された場合、Oracle REST Data Servicesはレスポンス・ヘッダーにWWW-Authenticateを返します。

owa_custom.authorize

プール固有

security.requestValidationFunction

文字列

URLでリクエストされたプロシージャの処理を許可するかどうかを判断するための検証関数を​​指定します。この関数は、プロジェクトを許可する場合はtrueを戻し、そうでない場合はfalseを戻す必要があります。

CHECK_VALID_PROCEDURE

プール固有

security.verifySSL

ブール値

その環境でHTTPSが利用可能かどうかを指定します。

サポートされている値:

  • true (デフォルト)

  • false

この値をfalseに変更する場合は、「非HTTPS環境でOAuth2の使用」を参照してください。

true

グローバル

soda.defaultLimit

文字列

SODA REST APIを使用しているときに、制限がURLで指定されていない場合、コレクションのGETリクエストに返されるデフォルトのドキュメント数を指定します。正の整数または、制限をなくす「無制限」である必要があります。

デフォルトは100です。

75

プール固有

soda.maxLimit

文字列

SODA REST APIを使用しているときに、URLで指定された制限にかかわらず、コレクションURLでGETリクエストに返されるドキュメントの最大数を指定します。正の整数または、制限をなくす「無制限」である必要があります。

デフォルトは1000です。

700

プール固有

restEnabledSql.active

ブール値

REST対応SQLサービスがアクティブかどうかを指定します。サポートされている値:
  • true

  • false (デフォルト)

true

プール固有

関連項目:

詳細は、「Oracle REST Data Servicesの構成およびインストール」および『Oracle SQL Developerユーザーズ・ガイド』のOracle REST Data Servicesの管理に関する項を参照してください。