4.2 アプリケーション・コンテナへのApplication Expressのインストール

アプリケーション・バックエンドのデータおよびメタデータを格納するアプリケーション・コンテナについて学習します。

4.2.1 アプリケーション・コンテナについて

アプリケーション・コンテナは、アプリケーション・バックエンドのデータおよびメタデータを格納するCDBコンポーネントです。

Oracle Application Expressは、apxappcon.sqlスクリプトを使用してアプリケーション・コンテナにインストールできます。アプリケーション・コンテナは、アプリケーションが定義されているアプリケーション・ルートと、アプリケーション・ルートからアプリケーションに関するデータおよびメタデータを共有する1つ以上のPDBから構成されます。1つのCDBに複数のアプリケーション・コンテナを含め、各コンテナに異なるバージョンのOracle Application Expressを含めることができます。

アプリケーション・コンテナでのOracle Application Expressのパッチ適用やアップグレードは、そのアクションがアプリケーション・ルートに対して実行されるため、簡略化されます。アプリケーションPDBがパッチまたはアップグレードされたバージョンを実行する場合、アプリケーション・ルートと同期されるだけです。Oracle Application Expressは、アプリケーションPDBがアプリケーション・ルートと同期するまで、既存のバージョンのアプリケーションPDBで引き続き実行されます。

4.2.2 アプリケーション・コンテナの作成

アプリケーション・コンテナとしてCDB内にPDBを作成するには、PDB作成コマンドのAS APPLICATION CONTAINER句を使用します。

アプリケーション・コンテナを作成するには:

  1. アプリケーション・コンテナを作成するには、CREATE PLUGGABLE DATABASE文のAS APPLICATION CONTAINER句を使用します。
  2. アプリケーション・コンテナを開きます。

    次に例を示します。

    CREATE PLUGGABLE DATABASE apex_approot1 AS APPLICATION CONTAINER admin user admin IDENTIFIED
          BY <admin_password> FILE_NAME_CONVERT=('pdbseed','apex_approot1');
    ALTER PLUGGABLE DATABASE apex_approot1 open;
    

ノート:

前述の例のapex_approot1およびadmin userは、有効などのORACLE識別子でもかまいません。

4.2.3 アプリケーション・コンテナでのApplication Expressのインストールまたはアップグレード

アプリケーション・コンテナでApplication Expressをインストールまたはアップグレードするには:

  1. アプリケーション・コンテナに接続します。
  2. apxappcon.sqlを実行します。

    apxappcon.sqlは、Application ExpressをAPEXという名前のアプリケーションとしてアプリケーション・ルートにインストールします。

    このスクリプトでは、最初の4つの引数はapexins.sql scriptと同じであり、5番目のパラメータで、APEX_PUBLIC_USER用に使用するパスワードを指定します。アップグレード・インストールでは、APEX_PUBLIC_USERデータベース・ユーザーはすでに存在するため、5番目の引数は無視されます。

    次に例を示します。

    ALTER SESSION SET CONTAINER = apex_approot1;
    
     @apxappcon.sql SYSAUX SYSAUX TEMP /i/ P@ssw0rd!

4.2.4 アプリケーション・コンテナのインストールの確認

ORA-またはPLS-エラーのログ・ファイルを調べ、無効なオブジェクトをコンパイルして、アプリケーション・コンテナを確認します。

アプリケーション・コンテナのインストールを確認するには:

  1. インストールのログ・ファイルでORA-エラーまたはPLS-エラーを手動で調べます。
  2. 次のコマンドを実行して、無効なオブジェクトをコンパイルします。

    次に例を示します。

    ALTER SESSION SET CONTAINER=apex_approot1;
     
    begin
        sys.dbms_utility.compile_schema( 'APEX_200200', false );
        sys.dbms_utility.compile_schema( 'FLOWS_FILES', false );
    end;
    /
  3. dba_applicationsdba_app_errorsを問い合せます。
    SQL> select app_name, app_version, app_status from dba_applications where app_name = 'APEX';
     
     
    APP_NAME                       APP_VERSION                    APP_STATUS
     
    ------------------------------ ------------------------------ ------------
     
    APEX                           20.2                           NORMAL
     
    SQL> select app_name, app_statement, errornum, errormsg from dba_app_errors where app_name = 'APEX';
     
     
    no rows selected

4.2.5 アプリケーション・シードの作成

アプリケーション・シードは、アプリケーション・ルートの事前にインストールされたアプリケーションにアプリケーションPDBをプロビジョニングするために使用されます。

アプリケーション・シードを作成するには:

  1. sysdbaとしてCDB$ROOTに接続します。
  2. セッションを変更し、コンテナをアプリケーション・ルートに設定します。
  3. アプリケーション・シードを作成するには、CREATE PLUGGABLE DATABASE文のAS SEED句を使用します。
  4. APEXアプリケーションをアプリケーション・シードと同期します。
  5. 無効なオブジェクトをコンパイルします。
  6. アプリケーション・シードを読取り専用モードでオープンします。

    次に例を示します。

    ALTER SESSION SET CONTAINER=apex_approot1;
     
    CREATE PLUGGABLE DATABASE as seed admin user admin identified by <admin_password> file_name_convert=('pdbseed','apex_approot1_seed');
     
    ALTER PLUGGABLE DATABASE apex_approot1$seed open;
     
    ALTER SESSION SET CONTAINER=apex_approot1$seed;
     
    ALTER PLUGGABLE DATABASE application APEX sync;
     
    begin
        sys.dbms_utility.compile_schema( 'APEX_200200', false );
        sys.dbms_utility.compile_schema( 'FLOWS_FILES', false );
    end;
    /
     
    ALTER PLUGGABLE DATABASE close immediate;
     
    ALTER PLUGGABLE DATABASE open read only;

    ノート:

    前述の例のapex_approot1およびadmin userは、有効などのORACLE識別子でもかまいません。

4.2.6 アプリケーション・ルート・シードからのアプリケーションPDBの作成

アプリケーションPDBは、アプリケーション・ルートからCREATE PLUGGABLE DATABASE文を発行することで作成されます。

PLUGGABLE DATABASEはアプリケーション・コンテナ・シードから作成されるため、APEXアプリケーションはすでにインストールされ、構成の準備ができています。

アプリケーション・ルート・シードからアプリケーションPDBを作成するには:

  1. sysdbaとしてCDB$ROOTに接続します。
  2. セッションを変更し、コンテナをアプリケーション・ルートに設定します。
  3. CREATE PLUGGABLE DATABASEコマンドを使用して、アプリケーション・シードからPDBを作成します。

    次に例を示します。

    ALTER SESSION SET CONTAINER=apex_approot1;
     
    CREATE PLUGGABLE DATABASE apex_pdb1 admin user admin identified by <admin password> file_name_convert=('apex_approot1_seed','apex_pdb1');
     
    ALTER PLUGGABLE DATABASE apex_pdb1 open;
     
     
    ALTER SESSION SET CONTAINER=apex_pdb1;
     
    SQL> select app_name, app_version, app_status from dba_applications where app_name = 'APEX';
     
     
    APP_NAME                       APP_VERSION                    APP_STATUS
     
    ------------------------------ ------------------------------ ------------
     
    APEX                           20.2                           NORMAL

    ノート:

    前述の例のapex_approot1およびadmin userは、有効などのORACLE識別子でもかまいません。

4.2.7 アプリケーションPDBへのHTTPアクセスの構成

新しいアプリケーションPDBをHTTPアクセスについて構成します。

Oracle REST Data Servicesのダウンロードとインストールの項で説明する手順に従って、HTTPアクセス用に新規アプリケーションPDBを構成します。