プライマリ・コンテンツに移動
Oracle® REST Data Servicesインストレーション、構成および開発ガイド
リリース3.0.11
E62039-09
目次へ移動
目次
索引へ移動
索引

前
次

2 Oracle REST Data Servicesの構成(詳細)

この項では、リクエストをルーティングして複数のデータベースに接続するようにOracle REST Data Servicesを構成する方法を説明し、その他の構成情報については、その他のドキュメント・ソースを参照します。

注意:

Oracle REST Data Servicesは、構成の変更を行った後に再起動する必要があります。アプリケーションを再起動する方法はアプリケーション・サーバーのマニュアルを参照してください。

トピック:

2.1 複数データベースの構成

Oracle REST Data Servicesでは、複数のデータベースに接続する機能がサポートされています。この項では、リクエストを適切なデータベースにルーティングするための異なる戦略を説明します。

トピック:

2.1.1 リクエストURLについて

Oracle REST Data Servicesは、リクエストを適切なデータベースにルーティングするための多数の異なる戦略をサポートしています。これらの戦略はすべて、リクエストURLを調べ、URLのどこかの一致に基づいてデータベースを選択することを利用しています。それは、リクエストURLの関連する部分をまとめるのに役立ちます。次のURLについて考えます。

https://www.example.com/ords/sales/f?p=1:1

このURLは、次のセクションで構成されています。

  • プロトコル: https

  • ホスト名: www.example.com

  • コンテキスト・ルート: /ords

    コンテキスト・ルートは、アプリケーション・サーバー上のOracle REST Data Servicesがデプロイされている場所です。

  • リクエスト・パス: /sales/f?p=1.1

    これは、リクエストURLのコンテキスト・ルートからの相対となる部分です。

異なるアプリケーションに対しては、リクエスト・パス内の特定の接頭辞またはリクエストURL全体の特定の接頭辞に基づいてリクエストをルーティングすることが重要です。

複数データベースを構成するには、次の2つの手順を行います。

  1. データベース接続情報の構成

  2. どのリクエストをどのデータベースにルーティングするかの構成

2.1.2 追加のデータベースの構成

最初にOracle REST Data Servicesを構成するとき、apexという名前のデフォルトのデータベース接続を構成します。setupコマンドを使用して追加のデータベース接続を作成できます。

ヒント:

setupコマンドの完全なヘルプを表示するには、次のように入力します。

java -jar ords.war help setup

データベース接続を作成するには、次のように入力します。

java -jar ords.war setup --database <database name>

説明:

  • <database name>データベース接続に付ける名前です。

データベースを構成するために必要な情報を入力するように求められます。追加のデータベースを設定したあと、リクエストが適切なデータベースまでルーティングされる方法のルールを定義します。

2.1.3 リクエスト・パスの接頭辞に基づくルーティング

map-urlコマンドを使用してリクエストのルーティング・ルールを作成します。

ヒント:

map-urlコマンドの完全なヘルプを表示するには、次のように入力します。

java -jar ords.war help map-url

URLのリクエスト・パスの一部の接頭辞の一致に基づいてリクエストをルーティングする場合は、map-urlコマンドを次のように使用します。

java -jar ords.war map-url --type base-path --workspace-id <workspace name> <path prefix> <database name>

説明:

  • <workspace name>この接続用のRESTfulサービスが定義されているOracle Application Expressワークスペースの名前です。RESTfulサービスを使用していない場合は省略できます。

  • <path prefix>は、必ずリクエスト・パスの先頭にある接頭辞です。

  • <database name>は、前の手順で設定したデータベース接続の名前です。

2.1.3.1 リクエスト・パスの接頭辞に基づくルーティングの例

Oracle REST Data Servicesがexample.comという名前のシステムに/ordsというコンテキスト・パスでデプロイされているとすると、次のルールを作成します。

java -jar ords.war map-url --type base-path --workspace-id sales_rest /sales sales_db

このルールは、https://example.com/ords/sales/...に一致するすべてのリクエストがsales_dbというデータベース接続にルーティングされることを意味します。sales_dbデータベースに定義されているsales_restワークスペースで、RESTfulサービスの定義が検索されます。

前述のルールは、次のすべてのリクエストと一致します。

https://example.com/ords/sales/f?p=1:1
https://example.com/ords/sales/leads/
https://www.example.com/ords/sales/forecasting.report?month=jan  (If www.example.com resolves to the same system as example.com.)

前述のルールは、次のリクエストのいずれにも一致しません。

http://example.com/ords/sales/f?p=1:1  (The protocol is wrong.)
https://example.com:8080/ords/sales/f?p=1:1  (The port is wrong: 443 is default for https, but don't specify if using default.)
https://example.com/ords/f?p=1:1  (Missing the /sales prefix.)
https://example.com/pls/sales/leads/  (The context path is wrong.)

2.1.4 リクエストURLの接頭辞に基づくルーティング

リクエストURLの接頭辞の一致に基づいてリクエストをルーティングする場合は、map-urlコマンドを次のように使用します。

java -jar ords.war map-url --type base-url --workspace-id <workspace name> <url prefix> <database name>

説明:

  • <workspace name>この接続用のRESTfulサービスが定義されているOracle Application Expressワークスペースの名前です。RESTfulサービスを使用していない場合は省略できます。

  • <url prefix>は、リクエストURLの先頭に必要な接頭辞です。

  • <database name>は、データベース接続の名前です。

2.1.4.1 リクエストURLの接頭辞に基づくルーティングの例

Oracle REST Data Servicesがexample.comという名前のシステムに/ordsというコンテキスト・パスでデプロイされているとすると、次のルールを作成します。

java -jar ords.war map-url --type base-url --workspace-id sales_rest https://example.com/ords/sales sales_db

このルールは、https://example.com/ords/sales/...に一致するすべてのリクエストがsales_dbというデータベース接続にルーティングされることを意味します。sales_dbデータベースに定義されているsales_restワークスペースで、RESTfulサービスの定義が検索されます。

前述のルールは、次のすべてのリクエストと一致します。

https://example.com/ords/sales/f?p=1:1
https://example.com/ords/sales/leads/
https://example.com/ords/sales/forecasting.report?month=jan

前述のルールは、次のリクエストのいずれにも一致しません。

http://example.com/ords/sales/f?p=1:1  (The protocol is wrong.)
https://example.com:8080/ords/sales/f?p=1:1  (The port is wrong: 443 is default for https, but don't specify if using default.)
https://example.com/ords/f?p=1:1  (Missing the /sales segment of the base URL.)
https://example.com/pls/sales/leads/  (The context path is wrong.)
https://www.example.com/ords/sales/forecasting.report?month=jan  (The host name is wrong.)

2.2 RAC Fast Connection Failoverのサポート

Oracle REST Data Service (ORDS)は、Oracle Real Application Clusters (Oracle RAC)のFast Connection Failover (FCF)機能をサポートします。

Oracle REST Data Serviceは、WebLogic、Tomcat、GlassFishなど、サポートするすべてのApplication Server環境でUniversal Connection Pool (UCP)とともに実行されます。また、UCPはFast Connection Failoverをサポートします。FCFを有効化するには、Oracle Notification Service (ONS)が有効化されている必要があります。ONSを有効化するには、次のコード・スニペットに示すように、Oracle REST Data Services defaults.xml構成ファイルにあるプロパティのリストにエントリを追加します。

<entry key="jdbc.enableONS">true</entry>
<entry key= "jdbc.ONSConfig">nodes=racnode1:4200,racnode2:4200\nwalletfile=/oracle11/onswalletfile</entry>
ONSは、Fast Application Notification (FAN)イベントを送信するために使用されるメッセージング機能です。ONSが有効の場合、ORDSがFCFを自動的に有効化します。フェイル・オーバーや、ロード・バランシングなどのその他の高度なFCF機能など、特定のFCF機能を有効化するには、次のコード・スニペットに示すようにカスタム接続に対応するエントリを構成ファイルに追加する必要があります。
<entry key="db.connectionType">customurl</entry>
<entry key="db.customURL">jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)(ADDRESS_LIST=
		(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=prod_scan.example.com)(PORT=1521)))
		(CONNECT_DATA=(SERVICE_NAME=ISPRD)))|</entry>

defaults.xml構成ファイルを更新した後、ORDSを再起動するまで変更は有効になりません。

UCPはFast Connection Failoverをサポートします。FCFは、FANイベントをリッスンし、それに応答することで次の2つのシナリオに対応します。
  • 計画外停止

    : RACはインスタンス障害を検出するとFAN Downイベントを生成し、それをFCFが捕捉します。 FCFは失敗したインスタンスへのすべての接続を終了し、それ以降のすべてのリクエストを、残っているRACインスタンスに送ります。
  • 計画停止

    : たとえば、データベース管理者(DBA)が、一部のメンテナンス・アクティビティを実行するためにRACインスタンスを正常にシャットダウンしたいことがあります。インスタンス・シャットダウンはFAN Planned Downイベントを生成し、それをFCFが捕捉します。 続いてFCFはすべての新しいリクエストを他のRACインスタンスに送り、現在アクティブなトランザクションを排出するか完了させます。

注意:

長い間実行されているトランザクションは、強制終了が必要な場合があります。

2.3 セキュリティ、キャッシュ、前処理と後処理、環境、およびExcel設定の構成

セキュリティ、キャッシュ、前処理と後処理、環境およびExcel設定の構成は、「SQL Developerを使用したOracle REST Data Servicesの管理(オプション)」を参照してください。

2.4 Oracle REST Data Servicesで使用するRESTfulサービスの開発

Oracle REST Data Servicesで使用するRESTfulサービスを開発する方法の詳細は、「Oracle REST Data Servicesアプリケーションの開発」を参照してください。