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

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

トピック:

C.1 構成フォルダの構造の理解

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

+- global/
    +- settings.xml
    +- credentials
    +- wallet/
    +- standalone/
+- databases/
    +- default/
        +- pool.xml
        +- wallet/
    +- myapp/
         +- hostnames
         +- pool.xml
         +- wallet/
    +- myapp2/
         +- paths
         +- pool.xml
         +- wallet/
global/フォルダには、ORDSインスタンス全体に適用される設定が含まれます。
  • settings.xml: ORDSインスタンス全体にわたって構成されている設定が含まれます。例: debug.printToScreen=true
  • credentials: ORDSユーザー・パスワード・ファイル
  • wallet/: defaults.xmlsecurity.crypto.enc.passwordおよびsecurity.crypto.mac.password構成設定に以前に格納されたインスタンス全体の暗号化キーおよびMACキーを含むOracle自動ログイン・ウォレットが含まれます。
  • standalone/: HTTPS証明書やキーなどのスタンドアロン・モード関連のリソースが含まれます。
databases/フォルダには、データベース・プール構成が含まれます。
  • 各プール構成は、その独自のフォルダにあります。プールのベース・パスURLマッピングはフォルダ名から推測されます。フォルダの名前がfoo/の場合、https://server/ords/foo/...にアクセスしてリクエストをプールにマップできます
  • フォルダ名は有効なサブドメイン名である必要があり、0-9、a-z、-の文字のみを含む英数字で始まる必要があります(つまり、数字、小文字のa-zのみを含める必要があり、-文字はデリミタとしてのみ使用できます)。
  • default/という名前のフォルダは予約されており、他のプールにマップされていないリクエストをマップするために使用されます。これは、古い構造のapex.xmlプールと同等です。
  • databases/<pool-name>/wallet/という名前のフォルダには、データベース・プールの資格証明を含むOracle自動ログイン・ウォレットが含まれます。データベースのユーザー名とパスワードはウォレットに格納する必要があります。db.passwordの設定は使用しないでください。ウォレットは、ORDSウォレットの要件に準拠する必要があります。
  • または、フォルダにhostnameまたはpathsという名前のファイルが含まれることがありますが、両方が含まれることはありません。

C.2 構成ファイルの形式の理解

構成ファイルは、各構成設定がキーおよびそれに対応する値からなる標準のJava XMLプロパティ・ファイル形式を使用します。settings.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.servicename">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.3 構成可能な設定の理解

この項では、settings.xmlおよびpool.xml構成ファイルの編集可能な構成設定を示します。

ノート:

Oracle REST Data Servicesコマンドライン・インタフェースを使用して構成ファイルを編集することをお薦めします。

表C-1 Oracle REST Data Servicesの構成設定

キー 説明 設定タイプ
apex.security.administrator.roles 文字列 認証されたAPEX管理者タイプのユーザーに割り当てる追加のロールのカンマ区切りリストを指定します。   プール固有
apex.security.user.roles 文字列 認証された通常のAPEXユーザーに割り当てる追加のロールのカンマ区切りリストを指定します。   プール固有
autoupgrade.api.aulocation 文字列 AutoUpgrade.jarの場所の構成設定を指定します。   プール固有
autoupgrade.api.enabled ブール値 AutoUpgrade REST API機能を有効にする構成設定を指定します。   プール固有
autoupgrade.api.jvmlocation 文字列 AutoUpgrade REST API JVMの場所の構成設定を指定します。   プール固有
autoupgrade.api.loglocation 文字列 AutoUpgrade REST APIログの場所の構成設定を指定します。   プール固有
database.api.management.services.disabled ブール値 データベースAPI管理に関連するサービスを無効にすることを指定します。データベースAPIが有効になっている場合にのみ適用されます。   グローバル
db.adminUser 文字列 ORDSがデータベースでの管理操作に使用するデータベース・アカウントのユーザー名を指定します。   プール固有
db.adminUser.password 文字列 ORDSがデータベースでの管理操作に使用するデータベース・アカウントのパスワードを指定します。   プール固有
db.cdb.adminUser 文字列 ORDSがプラガブル・データベース・ライフサイクル管理に使用するデータベース・アカウントのユーザー名を指定します。   プール固有
db.cdb.adminUser.password 文字列 ORDSがプラガブル・データベース・ライフサイクル管理に使用するデータベース・アカウントのパスワードを指定します。   プール固有
db.credentialsSource 文字列

SQL文を実行するための直接接続を作成する際に、データベース資格証明のソースを指定します。

値はpoolまたはrequestのいずれかです。

値がpoolの場合、このプールに定義されている資格証明を使用してJDBC接続を作成します。

requestを使用する場合は、リクエストの資格証明を使用してJDBC接続を作成し、成功すると、要求者にSQL Developerロールを付与します。

デフォルト値はpoolです。

  プール固有
db.invalidPoolTimeout 期間

無効なプールを再試行するまでの待機時間を指定します。

デフォルト: 15m

  グローバル
db.poolDestroyTimeout 期間

プールを正常に破棄するまでの待機時間を示します。この時間を過ぎると、流用されている接続も含めて、すべての接続を強制的に破棄します。

デフォルト: 5m

  プール固有
db.wallet.zip 文字列 プールの接続詳細を含むウォレット・アーカイブ(BASE64エンコーディングで指定)を指定します。   プール固有
db.wallet.zip.path 文字列 プールの接続詳細を含むウォレット・アーカイブのパスを指定します。   プール固有
db.wallet.zip.service 文字列 プールのウォレット・アーカイブ内のサービス名を指定します。   プール固有
debug.trackResources ブール値 JDBCリソースのトラッキングを有効にすることを指定します。解放しないと、データベースでのリソースのリークまたは不足が引き起こされます。トラッキングを行うと、パフォーマンスのオーバーヘッドが発生します。   プール固有
feature.openservicebroker.exclude ブール値 プールに使用できるオープン・サービス・ブローカ・サービスを無効にすることを指定します。   プール固有
feature.sdw ブール値 データベース・アクション機能を有効にすることを指定します。   プール固有
http.cookie.filter 文字列 Oracle Web Agent環境の初期化時に除外するHTTP Cookieのカンマ区切りリストを指定します。   プール固有
jdbc.auth.admin.role 文字列 データベース・ユーザーがSQL管理者ロールを取得する必要があることを示すデータベース・ロールを識別します。   プール固有
jdbc.cleanup.mode   リクエストが処理されたときに、プールされているJDBC接続と対応するデータベース・セッションを解放する方法を指定します。

デフォルト値はRECYCLEです

  プール固有
owa.trace.sql ブール値 ブール型プロパティを指定します。trueの場合、Oracle Web Agentによって実行されたSQL文のトレースがログにエコーされます。   プール固有
plsql.gateway.mode 文字列

PL/SQLゲートウェイ機能をプールに使用できるかどうかを示します。

値はdisableddirectまたはproxiedのいずれかです。

  • 値がdirectの場合、プールではPL/SQLゲートウェイのリクエストを直接処理します。
  • 値がPLSQL_GATEWAY_CONFIGの場合、ビューを使用してプロキシとなるユーザーを決定します。
proxied プール固有
request.traceHeaderName 文字列

リクエストがアプリケーション・スタックの様々なレイヤーを通る際に、リクエストをエンド・ツー・エンドで一意に識別するHTTPリクエスト・ヘッダーの名前を指定します。Oracleでは、このヘッダーは通常ECID (エンティティ・コンテキストID)と呼ばれます。

  グローバル
resource.templates.enabled ブール値 非推奨。レガシー・リソース・テンプレート(APEXベースのREST)を有効にするかどうかを示す構成プロパティ。デフォルトはFalseです。リソース・テンプレートのコード・ベースは単一プール(ORDS_PUBLIC_USER)アーキテクチャと互換性がないため、無効にする必要があります。   グローバル
security.credentials.attempts 数値 パスワード試行の失敗の最大許容回数を指定します。正の整数値を設定すると有効になります。

デフォルトは-1です。

3 グローバル
security.credentials.file 文字列 資格証明が格納されるファイルを指定します。   グローバル
security.credentials.lock.time 期間 最大試行回数を超えたアカウントをロックする期間を指定します。

デフォルトは10m (10分)です

15m グローバル
security.validationFunctionType 文字列 security.requestValidationFunction: javascriptまたはplsqlのタイプを示します。

デフォルトはplsqlです。

  プール固有
standalone.access.log 文字列 HTTPリクエストのアクセス・ログを格納するフォルダのパスを指定します。指定しない場合、アクセス・ログは生成されません。   グローバル
standalone.binds 文字列 リスニングを行う特定のネットワーク・インタフェースを識別するためのホスト名またはIPアドレスのカンマ区切りのリストを指定します。

デフォルトは0.0.0.0です。

  グローバル
standalone.context.path 文字列 ordsが配置されるコンテキスト・パスを指定します。デフォルトは/ordsです   グローバル
standalone.doc.root 文字列 /ルート・サーバー・パスの下で機能する静的リソースがある場所を指します。   グローバル
standalone.http.port 数値 HTTPリスニング・ポートを指定します。

デフォルト: 8080

8777 グローバル
standalone.https.cert 文字列 SSL証明書のパスを指定します。SSL証明書を提供する場合は、証明書の場所を指定する必要があります。   グローバル
standalone.https.cert.key 文字列 SSL証明書のキーのパスを指定します。SSL証明書を提供する場合は、証明書のキーの場所を指定する必要があります。   グローバル
standalone.https.host 文字列 SSL証明書のホスト名を指定します。   グローバル
standalone.https.port 数値 HTTPSリスニング・ポートを指定します。

デフォルト: 8443

  グローバル
standalone.static.context.path 文字列 Application Expressの静的リソースが配置されるコンテキスト・パスを指定します。

デフォルト: /i

  グローバル
standalone.static.path 文字列 APEXに必要な静的リソースを含むフォルダのパスを指定します。   グローバル
standalone.stop.timeout 期間 スタンドアロン・モードが正常に停止するまで待機する期間を指定します。

デフォルト: 10s (10秒)

15s グローバル

apex.docTable

文字列

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

MYDOCTABLE

プール固有
cache.metadata.timeout

文字列

メタデータ・レコードがキャッシュに残る期間を決定するための設定を指定します。期間が長いほど、適用された変更の表示に時間がかかります。

受け入れられる形式は、ISO-8601期間形式に基づきます。

5m グローバル
cache.metadata.enabled

ブール値

メタデータ・キャッシュを有効または無効にする設定を指定します。

サポートされている値:

  • true

  • false (デフォルト)

false グローバル
database.api.enabled

ブール値

データベースAPIが有効かどうかを指定します。

サポートされている値:

  • true

  • false (デフォルト)

  グローバル

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.responseFormat 文字列 HTTPエラー・レスポンスの書式設定方法を指定します。

サポートされている値:

  • html - すべてのレスポンスを強制的にHTML形式にします。
  • json - すべてのレスポンスを強制的にJSON形式にします。
  • auto - リクエストに最適な形式を自動的に決定します(デフォルト)。
json グローバル

error.externalPath

文字列

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

/path/to/error/pages/folder/

グローバル

icap.port

数値

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

icap.portまたはicap.secure.portのどちらかに値を指定する必要があります。

1344

グローバル
icap.secure.port

数値

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

icap.portまたはicap.secure.portのどちらかに値を指定する必要があります。

icap.porticap.secure.portの両方の値を指定した場合、icap.portの値は無視されます。

1344 グローバル

icap.server

文字列

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

icap.serverの値は必須です。

servername

グローバル

jdbc.DriverType

文字列

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

  • thin

    (デフォルト)
  • oci8

thin

プール固有

jdbc.InactivityTimeout

数値

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

デフォルトは1800です。

1800

プール固有

jdbc.InitialLimit

数値

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

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

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

数値

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

デフォルトは2です。

1

プール固有

jdbc.statementTimeout

数値

文のタイムアウト時間を指定します。

リクエストによって実行される異常に長い実行時間の問合せまたはスクリプトは、文にタイムアウトが設定されていないかぎり、ハング状態のままになることがあります。文にタイムアウトを設定すると、指定した期間内に問合せが完了しなかった場合に、すべての問合せが自動的にタイムアウトします。

デフォルトは900です。

900

プール固有

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

プール固有